docker容器不能访问外网问题以及ubuntu环境下docker容器如何安装ifconfig ping等网络工具

您所在的位置:网站首页 ubuntu访问不了外网 docker容器不能访问外网问题以及ubuntu环境下docker容器如何安装ifconfig ping等网络工具

docker容器不能访问外网问题以及ubuntu环境下docker容器如何安装ifconfig ping等网络工具

2024-02-13 11:13| 来源: 网络整理| 查看: 265

首先我的宿主机是centos7系统,然后上面跑了一个mysql的docker容器,今天好奇想进去容器里面去看下容器的ip地址,结果发现ifconfig命令没有,想测试能不能连外网,居然ping命令也没有,我试图用apt命令安装这些工具,发现根本连不上网络。

我在宿主机中查看网络配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens192

发现是DNS没有配置的原因,然后改完DNS后重启宿主机网络之后,宿主机是可以访问外网了,但是再用docker exec -it mymysql /bin/bash进去容器,发现还是连不上网,后来上网查了一些资料,终于解决了问题:

注意,大家在使用docker的时候最好把宿主机的防火墙关了service iptables stop,因为创建容器的时候默认会在防火墙里面添加了docker规则

[root@docker2 sysconfig]# iptables -t nat -L -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0 MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:3306 Chain DOCKER (2 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 to:172.17.0.2:3306

可以看到默认docker 172.17.0.0/16这个地址段的数据包是不能访问外部网络的

1重启docker服务

[root@docker2 ~]# service docker restart

2启动容器

[root@docker2 ~]# docker start mymysql

上面的mymysql是我的容器名,具体的大家根据自己容器名修改

3进入容器中

[root@docker2 ~]# docker exec -it mymysql /bin/bash root@15e658240225:/#

4使用apt安装ifconfig等网络工具,惊喜发现可以连上外网了

root@15e658240225:/# apt-get update root@15e658240225:/# apt install net-tools # ifconfig root@15e658240225:/# apt install iputils-ping # ping

采用上面命令分别安装ifconfig和ping工具

5在容器里面测试工具

root@15e658240225:/# ifconfig eth0: flags=4163 mtu 1500 inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet) RX packets 7295 bytes 11187896 (10.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4392 bytes 349904 (341.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3