在宿主机上可以 Ping 通域名,但是在 Docker 容器内部无法 Ping 通域名?赶快试试下面的两个方法吧!
方法一
登录 CentOS 8 宿主机的 SSH 终端,复制粘贴下面的指令 。
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --reload
systemctl restart docker
方法二
在 docker run 的时使用 –dns=<IP_Address> ,添加 DNS 服务器到容器的 /etc/resolv.conf 中。
DNS 服务器地址可以是宿主机的 IP 地址,也可以外部 DNS 服务器地址,比如谷歌的 8.8.8.8 或者 腾讯的 119.29.29.29 。
docker run --privileged=true --dns=192.168.1.1 --name shop-t -d -p 8080:80 -v /project:/var/www/html centos7-sshd-httpd-php56-mysql-client init
方法三
针对要访问的域名可以在 docker run 时添加 –add-host=<Site-Domain>:<IP_Address> 参数设定 Docker 容器内部的 hosts 文件绑定该域名对应的 IP 地址。
docker run --privileged=true --add-host=demo.otakusay.com:127.0.0.1 --name shop-t -d -p 8080:80 -v /project:/var/www/html centos7-sshd-httpd-php56-mysql-client init