Untuk pembangun yang perlu menggunakan Docker untuk membina persekitaran kontena, menggunakan Docker pada sistem pengendalian Linux ialah pilihan yang baik. Walau bagaimanapun, sesetengah pengguna mungkin menghadapi beberapa masalah apabila menggunakan Docker pada CentOS, salah satunya adalah ketidakupayaan untuk mengakses Docker melalui mesin hos. Artikel ini akan menerangkan mengapa masalah ini berlaku dan menyediakan beberapa penyelesaian yang mungkin.
1. Punca masalah
Selepas memasang Docker pada CentOS, ia akan mencipta jambatan maya lalai bernama "docker0". Setiap bekas Docker akan bersambung ke jambatan ini dan menggunakan alamat IP daripada julat alamat IP "docker0". Dengan cara ini, hos dan bekas Docker boleh berkomunikasi melalui jambatan "docker0" yang dikongsi. Walau bagaimanapun, kerana tembok api CentOS tidak dikonfigurasikan dengan betul secara lalai, akses kepada hos Docker tidak dapat dilakukan. Ini kerana tembok api CentOS menyekat paket masuk daripada julat alamat IP lain.
2. Penyelesaian
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 sudo firewall-cmd --permanent --zone=trusted --add-source=172.17.0.0/16 sudo firewall-cmd --permanent --zone=trusted --add-source=172.18.0.0/16 sudo firewall-cmd --reload
Dalam arahan di atas, kami menentukan zon "dipercayai" dan menambah jambatan "docker0". Selain itu, kami membenarkan paket daripada julat alamat IP "172.17.0.0/16" dan "172.18.0.0/16" untuk memasuki zon ini. Akhir sekali, gunakan arahan "firewall-cmd --reload" untuk memastikan peraturan firewall baharu berkuat kuasa serta-merta.
Untuk melakukan ini, anda perlu mengedit fail konfigurasi Docker yang terletak di bawah laluan "/etc/docker/daemon.json" dan menambah kandungan berikut:
"dns": ["8.8.8.8", "8.8.4.4"]
Ini akan Tetapkan DNS Google dalam bekas untuk membantu Docker menyelesaikan nama DNS.
Untuk menyemak versi Docker anda, taip arahan berikut:
$ docker version
Jika anda menjalankan versi lama Docker, anda boleh menaik taraf menggunakan arahan berikut:
$ sudo yum update docker
Atau, jika anda memasangnya menggunakan repositori Yum yang disyorkan secara rasmi oleh Docker, arahan berikut boleh digunakan untuk menaik taraf Docker:
$ sudo yum install docker-ce
$ docker network ls
Ini akan menyenaraikan semua rangkaian Docker. Sila pastikan bahawa semua rangkaian tidak berkaitan dengan "docker0" dan dikonfigurasikan dengan betul.
Ringkasan
Menggunakan Docker pada CentOS boleh menyediakan persekitaran kontena yang mudah Walau bagaimanapun, sesetengah pengguna mungkin menghadapi beberapa masalah yang berbeza. Artikel ini membincangkan penyelesaian kepada masalah ini, termasuk konfigurasi tembok api, tetapan DNS Docker, kemas kini versi Docker dan pemeriksaan tetapan rangkaian Docker. Jika anda menghadapi masalah ini pada CentOS, anda boleh mencuba mana-mana kaedah di atas untuk menyelesaikannya.
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika centos tidak dapat mengakses hos docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!