


Bagaimana untuk menyelesaikan ralat apabila bekas menggunakan docker hos
Dalam beberapa tahun kebelakangan ini, Docker telah menjadi semakin popular sebagai penyelesaian kontena yang cekap. Walau bagaimanapun, terdapat juga beberapa masalah yang dihadapi semasa menggunakan Docker untuk penggunaan kontena Contohnya, apabila mengakses mesin hos dari dalam bekas, bekas akan melaporkan ralat menggunakan Docker hos. Artikel ini menerangkan punca masalah ini dan cara membetulkannya.
Penerangan Masalah
Apabila menggunakan Docker untuk menggunakan aplikasi, kadangkala anda perlu mengakses sistem fail hos atau daemon Docker hos dari dalam bekas. Biasanya, ini dicapai dengan menambahkan parameter -v /:/host
dan -v /var/run/docker.sock:/var/run/docker.sock
apabila memulakan bekas. Walau bagaimanapun, dalam beberapa kes, apabila kontena cuba mengakses daemon Docker hos, mesej ralat yang serupa dengan yang berikut akan muncul:
FATA[0000] Post http:///var/run/docker.sock/v1.18/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
Ini kerana proses dalam kontena akan mula-mula cuba mencari dalam direktori /var/run/docker.sock
di dalam bekas, tetapi direktori ini tidak wujud di dalam bekas, jadi ralat ini akan berlaku.
Penyelesaian
Kaedah 1: Gunakan parameter --privileged
Apabila memulakan bekas, gunakan parameter --privileged
untuk memberikan bekas semua kebenaran hos, termasuk akses daemon Docker. Walau bagaimanapun, menggunakan kaedah ini akan membolehkan bekas mendapatkan kebenaran yang lebih tinggi dan menimbulkan risiko keselamatan yang lebih besar, jadi disyorkan untuk menggunakannya dengan berhati-hati.
docker run --privileged -v /:/host -v /var/run/docker.sock:/var/run/docker.sock <image>
Kaedah 2: Gunakan pembolehubah persekitaran
Apabila memulakan bekas, anda boleh menggunakan pembolehubah persekitaran untuk menentukan alamat daemon Docker, dengan itu menghalang bekas daripada mencari daemon Docker proses pada /var/run/docker.sock
.
docker run -v /:/host -e DOCKER_HOST=unix:///host/var/run/docker.sock <image>
Kaedah 3: Tukar kepada sambungan TCP
Menggunakan sambungan TCP dan bukannya Unix Socket juga boleh menyelesaikan masalah ini. Anda perlu menambah parameter -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
apabila memulakan daemon Docker, dan kemudian gunakan pembolehubah persekitaran DOCKER_HOST
dalam bekas untuk menentukan penggunaan TCP untuk menyambung kepada daemon Docker.
docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock docker run -e DOCKER_HOST=172.xx.xx.xx:2375 <image>
Kesimpulan
Ralat yang dilaporkan apabila bekas menggunakan hos Docker disebabkan oleh masalah laluan apabila proses dalam bekas sedang mencari proses daemon Docker. Artikel ini memperkenalkan tiga penyelesaian: menggunakan parameter --privileged
, menggunakan pembolehubah persekitaran dan menukar kaedah sambungan daemon Docker. Masalah ini boleh diselesaikan dengan mudah dengan memilih kaedah yang sesuai mengikut situasi sebenar.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat apabila bekas menggunakan docker hos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

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

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

Undress AI Tool
Gambar buka pakaian secara percuma

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





Docker adalah kemahiran yang mesti ada untuk jurutera DevOps. 1.Docker adalah platform kontena sumber terbuka yang mencapai pengasingan dan mudah alih dengan aplikasi pembungkusan dan kebergantungan mereka ke dalam bekas. 2. Docker bekerja dengan ruang nama, kumpulan kawalan dan sistem fail bersekutu. 3. Penggunaan asas termasuk mencipta, menjalankan dan menguruskan bekas. 4. Penggunaan lanjutan termasuk menggunakan DockerCompose untuk menguruskan aplikasi multi-kontainer. 5. Kesilapan umum termasuk kegagalan kontena, masalah pemetaan pelabuhan, dan masalah ketekunan data. Kemahiran penyahpepijatan termasuk log melihat, memasukkan bekas, dan melihat maklumat terperinci. 6. Pengoptimuman prestasi dan amalan terbaik termasuk pengoptimuman imej, kekangan sumber, pengoptimuman rangkaian dan amalan terbaik untuk menggunakan Dockerfile.

Dockervolumes memastikan data tetap selamat apabila bekas dimulakan semula, dipadam, atau berhijrah. 1. Buat Jilid: DockervolumecreatemyData. 2. Jalankan bekas dan gunung: dockerrun-it-vmydata:/app/dataubuntubash. 3. Penggunaan lanjutan termasuk perkongsian data dan sandaran.

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

Cara memulakan semula bekas Docker: Dapatkan ID Container (Docker PS); Hentikan bekas (Docker Stop & lt; container_id & gt;); Mulakan bekas (Docker Start & lt; container_id & gt;); Sahkan bahawa permulaan semula berjaya (Docker PS). Kaedah lain: Docker mengarang (Docker-Compose Restart) atau Docker API (lihat Dokumentasi Docker).

Kaedah Peningkatan Keselamatan Docker termasuk: 1. Gunakan parameter-cap-drop untuk menghadkan keupayaan Linux, 2. Buat bekas baca sahaja, 3 set tag Selinux. Strategi ini melindungi bekas dengan mengurangkan pendedahan kelemahan dan mengehadkan keupayaan penyerang.

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).
