Bagaimana untuk menyelesaikan masalah yang docker tidak dapat berkomunikasi dengan host dns

PHPz
Lepaskan: 2023-04-17 15:36:48
asal
1525 orang telah melayarinya

Penyelesaian untuk Docker tidak berfungsi dengan DNS hos

Docker ialah platform kontena aplikasi yang digunakan secara meluas yang menyediakan persekitaran kontena mudah alih, berskala dan berskala. Walau bagaimanapun, kadangkala Docker akan menghadapi pelbagai masalah apabila digunakan dengan DNS hos, seperti ketidakupayaan untuk menyelesaikan nama domain, kependaman tinggi dan sebagainya. Artikel ini akan memperkenalkan sebab mengapa Docker tidak boleh digunakan dengan DNS hos dan penyelesaiannya.

Sebab

Docker menggunakan teknologi seperti Cgroups dan Namespace untuk menyediakan persekitaran terpencil sepenuhnya daripada hos dalam bekas. Persekitaran pengasingan ini melindungi bekas, tetapi juga menghalang bekas daripada berkomunikasi melalui pelayan DNS hos. Oleh itu, perkhidmatan DNS hos tidak boleh digunakan untuk resolusi nama domain di dalam bekas.

Penyelesaian

Untuk menyelesaikan masalah Docker tidak boleh digunakan dengan DNS hos, kami boleh mengambil langkah berikut:

1 dalam bekas Docker

Kami boleh menyediakan pelayan DNS tersuai dalam Docker untuk menggantikan pelayan DNS lalai. Kami boleh menyediakan pelayan DNS tersuai dengan menggunakan arahan berikut dalam Dockerfile:

RUN echo "nameserver 8.8.8.8" >> /etc/resolv.conf
Salin selepas log masuk

Ini akan menambah pelayan DNS awam Google 8.8.8.8 pada fail /etc/resolv.conf dalam bekas. Kami boleh menyediakan berbilang pelayan DNS dengan menambahkan berbilang pelayan nama.

2. Sediakan pelayan DNS Docker dalam mesin hos

Kami boleh menyediakan pelayan DNS Docker dalam mesin hos supaya bekas boleh melaksanakan resolusi nama domain melalui mesin hos. Kami boleh menyediakan pelayan DNS Docker dengan menambahkan konfigurasi berikut dalam fail /etc/docker/daemon.json:

{
  "dns": ["8.8.8.8", "8.8.4.4"]
}
Salin selepas log masuk

Ini akan menambah pelayan DNS awam Google 8.8.8.8 dan 8.8.4.4 kepada Docker dalam pelayan DNS. Kami boleh menyediakan berbilang pelayan DNS dengan menambahkan berbilang pelayan DNS.

3. Gunakan pilihan --dns bagi bekas Docker

Kita boleh menggunakan pilihan --dns apabila memulakan bekas Docker untuk menetapkan pelayan DNS bekas. Contohnya:

docker run --dns 8.8.8.8 -it ubuntu:latest
Salin selepas log masuk

Ini akan menetapkan pelayan DNS awam Google 8.8.8.8 sebagai pelayan DNS bekas.

Ringkasan

Docker tidak boleh digunakan dengan DNS hos kerana Docker menggunakan beberapa teknik untuk menyediakan persekitaran terpencil dalam bekas. Untuk menyelesaikan masalah ini, kami boleh menetapkan pelayan DNS tersuai dalam bekas Docker, tetapkan pelayan DNS Docker dalam hos, atau gunakan pilihan --dns bekas Docker untuk menetapkan pelayan DNS bekas. Penyelesaian ini membolehkan Docker bekerja dengan DNS hos supaya kami boleh menggunakan platform kontena Docker dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang docker tidak dapat berkomunikasi dengan host dns. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan