


Cara menyambung dengan lembut ke direktori hos dalam bekas docker
Docker, sebagai teknologi untuk penggunaan pantas dan pengurusan aplikasi, telah digunakan secara meluas dalam persekitaran pembangunan dan pengeluaran. Apabila menggunakan Docker, kita selalunya perlu memetakan direktori hos ke bahagian dalam bekas Docker supaya bekas boleh membaca dan menulis fail pada hos.
Walau bagaimanapun, dalam beberapa kes, kami perlu memautkan direktori atau fail dalam bekas Docker ke direktori atau fail pada hos. Ini sangat berguna dalam aplikasi praktikal, seperti menggunakan sambungan lembut untuk berkongsi pangkalan kod antara hos dan bekas, atau membenarkan bekas mengakses peranti perkakasan tertentu pada hos.
Artikel ini akan memperkenalkan cara melaksanakan sambungan lembut ke direktori hos di dalam bekas Docker.
- Persediaan
Untuk melaksanakan sambungan lembut ke direktori hos di dalam bekas Docker, kita perlu terlebih dahulu berkongsi direktori pada hos Docker ke bahagian dalam bekas Docker. Di sini kami mengambil direktori /data
hos kongsi sebagai contoh.
Mula-mula, buat direktori /data
pada hos, buat fail test.txt
dalam direktori, dan kemudian tulis beberapa kandungan ujian dalam fail. Seterusnya, kita perlu memetakan direktori /data
hos kepada direktori di dalam bekas Docker, seperti /container_data
, apabila memulakan bekas Docker.
Andaikan bahawa kami telah memulakan bekas Docker bernama docker run
melalui perintah test
dan memetakan direktori /data
hos ke direktori /container_data
di dalam bekas. Sekarang kita boleh menyemak direktori /container_data
di dalam bekas Docker untuk mengesahkan bahawa bahagian telah disediakan dengan betul.
- Buat sambungan lembut di dalam bekas Docker
Selepas melengkapkan tetapan perkongsian, kami boleh mencipta sambungan lembut di dalam bekas Docker untuk menyambungkan direktori atau fail dalam bekas Pautan ke direktori atau fail pada mesin hos. Di sini kita mengambil sambungan lembut /container_data/test.txt
dalam bekas ke /data/test.txt
pada hos sebagai contoh.
Jalankan arahan berikut di dalam bekas Docker:
ln -s /container_data/test.txt /data/test.txt
Arahan ini akan mencipta sambungan lembut /data/test.txt
dalam bekas dan menghalakannya ke /data/test.txt
pada mesin hos . Kami boleh mengesahkan sama ada sambungan lembut telah dibuat dengan betul di dalam bekas Docker:
ls -l /data/test.txt
Arahan ini akan mengeluarkan yang berikut:
lrwxrwxrwx 1 root root 24 Mar 17 10:00 /data/test.txt -> /container_data/test.txt
Seperti yang anda lihat, menunjukkan bahawa ->
disambungkan dengan lembut ke /data/test.txt
. /container_data/test.txt
- Uji sama ada pautan lembut berfungsi dengan betul
dalam bekas Docker dan membaca dan menulis /container_data/test.txt
pada hos. /data/test.txt
ke test.txt
: /container_data/test.txt
echo "test message in container" > /container_data/test.txtKemudian, pada mesin hos, kita boleh melihat Kandungan fail
untuk mengesahkan sama ada pautan lembut berfungsi dengan jayanya: /data/test.txt
cat /data/test.txtSeperti yang anda lihat, kandungan dalam
adalah sama seperti yang ditetapkan di dalam bekas Docker. test.txt
pada hos: /data/test.txt
echo "test message in host" >> /data/test.txtKemudian, kami melihat kandungan fail
sekali lagi di dalam bekas Docker: /container_data/test.txt
cat /container_data/test.txtAnda dapat melihat bahawa kandungan yang baru ditambah telah dilampirkan dengan betul pada fail
. test.txt
- Ringkasan
Atas ialah kandungan terperinci Cara menyambung dengan lembut ke direktori hos dalam bekas docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bekas Docker adalah cara yang ringan dan mudah alih untuk memasangkan aplikasi dan kebergantungan mereka bersama -sama untuk memastikan aplikasi berjalan secara konsisten dalam persekitaran yang berbeza. Contoh yang dijalankan berdasarkan imej membolehkan pemaju untuk memulakan program dengan cepat melalui "templat". Jalankan arahan Dockerrun yang biasa digunakan dalam bekas. Langkah -langkah khusus termasuk: 1. Pasang Docker; 2. Dapatkan atau bina cermin; 3. Gunakan arahan untuk memulakan bekas. Bekas berkongsi biji hos, lebih ringan dan lebih cepat untuk boot daripada mesin maya. Pemula mengesyorkan bermula dengan imej rasmi, menggunakan dockerps untuk melihat status berjalan, menggunakan dockerlogs untuk melihat log, dan kerap membersihkan sumber untuk mengoptimumkan prestasi.

Untuk menyandarkan dan memulihkan jumlah Docker, anda perlu menggunakan bekas sementara bersempena dengan alat tar. 1. Semasa sandaran, jalankan bekas sementara yang memasang jumlah sasaran, gunakan arahan tar untuk membungkus data dan simpannya ke tuan rumah; 2. Semasa pemulihan, salin fail sandaran ke bekas yang melancarkan kelantangan dan mengurangkannya, perhatikan pemadanan jalan dan kemungkinan penindasan data; 3. Pelbagai jilid boleh ditulis secara automatik melalui setiap kelantangan; 4. Adalah disyorkan untuk beroperasi apabila bekas dihentikan untuk memastikan konsistensi data, dan kerap menguji proses pemulihan untuk mengesahkan kesahihan sandaran.

Perbezaan utama antara Docker dan virtualisasi tradisional terletak pada pemprosesan dan penggunaan sumber lapisan sistem operasi. 1. Bekas Docker berkongsi kernel OS host, yang lebih ringan, permulaan yang lebih cepat, dan lebih banyak kecekapan sumber; 2. Setiap contoh VM tradisional menjalankan OS penuh, menduduki lebih banyak ruang dan sumber; 3. Bekas biasanya bermula dalam beberapa saat, dan VM mungkin mengambil masa beberapa minit; 4. Bekas bergantung kepada ruang nama dan cgroup untuk mencapai pengasingan, manakala VM memperoleh pengasingan yang lebih kuat melalui perkakasan simulasi hypervisor; 5. Docker mempunyai mudah alih yang lebih baik, memastikan aplikasi berjalan secara konsisten dalam persekitaran yang berbeza, sesuai untuk microservices dan penyebaran persekitaran awan.

Expose digunakan dalam Dockerfile untuk mengisytiharkan port rangkaian bekas yang akan didengar semasa runtime, tetapi ia tidak akan diterbitkan secara automatik kepada tuan rumah. Peranan terasnya adalah untuk menyediakan tips dokumentasi dan konfigurasi untuk membantu pemaju dan alat memahami pelabuhan yang digunakan oleh aplikasi. Untuk menjadikan pelabuhan boleh diakses dari luar, anda masih perlu menggunakan parameter -P untuk memetakan semasa menjalankan bekas, contohnya: Dockerrun-P8080: 80my-Web-App. Sebab -sebab utama untuk menggunakan pendedahan termasuk meningkatkan kejelasan, integrasi alat sokongan, dan mengikuti amalan terbaik. Bekas boleh secara langsung mengakses port terdedah masing -masing dalam rangkaian tersuai yang sama, tetapi untuk mengaksesnya pada tuan rumah, pelabuhan mesti diterbitkan secara eksplisit. Kesalahan yang biasa ialah anda lupa memetakan pelabuhan apabila menjalankan bekas, menyebabkan perkhidmatan gagal.

Untuk melihat log kontena Docker, gunakan arahan DockerLogs terutamanya. 1. Gunakan DockerLogs [nama kontena atau ID] untuk melihat log secara langsung; 2. Tambah parameter -f untuk menjejaki output log dalam masa nyata; 3. Penggunaan --Timestamps atau -t untuk memaparkan cap waktu; 4. Penggunaan -sama ada dan --Antil untuk menapis log mengikut julat masa; 5. Jika bekas tidak mempunyai shell, anda masih boleh mengakses log stdout/stderr melalui dockerlogs, atau memasang kelantangan untuk mengakses fail log tersuai; 6. Anda boleh menyemak pemacu log yang digunakan oleh bekas melalui dockerInspect. Jika bukan pemacu fail JSON lalai, anda perlu menyemak sistem luaran yang sepadan.

Untuk mendedahkan pelabuhan kontena Docker, tuan rumah perlu mengakses perkhidmatan kontena melalui pemetaan port. 1. Gunakan dockerrun-p [host_port]: [container_port] perintah untuk menjalankan bekas, seperti dockerrun-p8080: 3000my-web-app; 2. Gunakan arahan pendedahan untuk menandakan tujuan dalam Dockerfile, seperti Expose3000, tetapi pelabuhan tidak akan diterbitkan secara automatik; 3. Konfigurasi segmen pelabuhan fail YML dalam DockerCompose, seperti pelabuhan:-"8080: 3000"; 4. Gunakan dockerps untuk memeriksa sama ada peta pelabuhan dijana selepas berjalan.

Untuk melihat metadata imej Docker, perintah DockerInspect digunakan terutamanya. 1. Melaksanakan dockerInspect untuk mendapatkan maklumat metadata lengkap, termasuk ID, seni bina, ringkasan lapisan dan butiran konfigurasi; 2. Gunakan templat GO untuk memformat output, seperti dockerInspect-format = '{. Os}}/{{. Arsitektur}}' untuk memaparkan hanya sistem operasi dan seni bina; 3. Gunakan Dockerhistory untuk melihat setiap lapisan maklumat semasa proses pembinaan imej untuk membantu mengoptimumkan struktur imej; 4. Gunakan Skopeo Tool SkopeoinspectDocker: ///: untuk mendapatkan tanpa menarik imej lengkap.

Docker mempunyai tiga jenis kelantangan utama: namedvolumes, bindmounts, dan tmpfsmounts. NamedVolumes diuruskan oleh Docker dan sesuai untuk senario di mana data berterusan diperlukan, seperti pangkalan data; Bindmounts peta laluan khusus hos ke bekas, sesuai untuk berkongsi kod atau konfigurasi semasa pembangunan; TMPFSMounts menyimpan data dalam ingatan, sesuai untuk maklumat sementara atau sensitif. Apabila menggunakannya, pilih jenis yang sesuai mengikut keperluan anda untuk mengoptimumkan pengurusan data kontena.
