Uncommenting DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
di /etc/default/docker
sebagai Matt Pembawa disarankan tidak TIDAK bekerja untuk saya. Juga tidak menempatkan server DNS perusahaan saya di file itu. Tapi, ada cara lain (baca terus).
Pertama, mari kita verifikasi masalahnya:
$ docker run --rm busybox nslookup google.com # takes a long time
nslookup: can't resolve 'google.com' # <--- appears after a long time
Server: 8.8.8.8
Address 1: 8.8.8.8
Jika perintah tampaknya macet, tetapi pada akhirnya memunculkan kesalahan "tidak dapat menyelesaikan 'google.com'", Anda memiliki masalah yang sama dengan saya.
The nslookup
perintah query DNS Server 8.8.8.8 untuk mengubah alamat teks 'google.com' ke alamat IP. Ironisnya, 8.8.8.8 adalah server DNS publik Google . Jika nslookup
gagal, server DNS publik seperti 8.8.8.8 mungkin diblokir oleh perusahaan Anda (yang saya asumsikan karena alasan keamanan).
Anda akan berpikir bahwa menambahkan server DNS perusahaan Anda ke DOCKER_OPTS
dalam /etc/default/docker
harus melakukan trik, tetapi untuk alasan apa pun, itu tidak berhasil untuk saya. Saya menjelaskan apa yang berhasil untuk saya di bawah ini.
SOLUSI :
Di host (saya menggunakan Ubuntu 16.04), cari tahu alamat server DNS primer dan sekunder:
$ nmcli dev show | grep 'IP4.DNS'
IP4.DNS[1]: 10.0.0.2
IP4.DNS[2]: 10.0.0.3
Menggunakan alamat ini, buat file /etc/docker/daemon.json
:
$ sudo su root
# cd /etc/docker
# touch daemon.json
Taruh ini di /etc/docker/daemon.json
:
{
"dns": ["10.0.0.2", "10.0.0.3"]
}
Keluar dari root:
# exit
Sekarang restart buruh pelabuhan:
$ sudo service docker restart
VERIFIKASI :
Sekarang periksa apakah menambahkan /etc/docker/daemon.json
file memungkinkan Anda menyelesaikan 'google.com' menjadi alamat IP:
$ docker run --rm busybox nslookup google.com
Server: 10.0.0.2
Address 1: 10.0.0.2
Name: google.com
Address 1: 2a00:1450:4009:811::200e lhr26s02-in-x200e.1e100.net
Address 2: 216.58.198.174 lhr25s10-in-f14.1e100.net
REFERENSI :
Saya mendasarkan solusi saya pada artikel oleh Robin Winslow, yang berhak mendapatkan semua pujian atas solusinya. Terima kasih, Robin!
"Perbaiki konfigurasi DNS jaringan Docker." Robin Winslow. Diakses tanggal 09 September 2016. https://robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
newgrp docker
alih-alih melakukan log off penuh kemudian masuk setelah memberikan diri sayasudo usermod -aG docker myuserid
... itu kasus tepi untuk yakin bagaimanapun itu terjadi