外网不能访问docker容器解决方案

首先外网能够ping通容器的宿主机例如我的容器宿主机是192.168.40.131

C:\Users\jiang>ping 192.168.40.131

正在 Ping 192.168.40.131 具有 32 字节的数据:
来自 192.168.40.131 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.40.131 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.40.131 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.40.131 的回复: 字节=32 时间<1ms TTL=64

192.168.40.131 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

C:\Users\jiang>

为了方便实验的进程建议关闭防火墙以及selinux

[root@linux ~]# systemctl stop firewalld.service
[root@linux ~]# systemctl disable firewalld.service
[root@linux ~]# sed -ri '/SELINUX=enforcing/cSELINUX=disabled' /etc/sysconfig/selinux
[root@linux ~]# setenforce 0

开启linux的包转发功能

[root@linux ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@linux ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@linux ~]#

在docker中测试端口映射

[root@linux ~]# docker run -d --name tomcat02 -p 9527:8080 tomcat:latest

我们会发现tomcat访问没得权限,那是因为Tomcat是最小化的内容

[root@linux ~]# docker exec -it tomcat02 /bin/bash
root@2cb65acbee53:/usr/local/tomcat# ls -l
total 136
-rw-r--r--. 1 root root 18982 Apr  3 12:06 BUILDING.txt
-rw-r--r--. 1 root root  5409 Apr  3 12:06 CONTRIBUTING.md
-rw-r--r--. 1 root root 57092 Apr  3 12:06 LICENSE
-rw-r--r--. 1 root root  2333 Apr  3 12:06 NOTICE
-rw-r--r--. 1 root root  3255 Apr  3 12:06 README.md
-rw-r--r--. 1 root root  6898 Apr  3 12:06 RELEASE-NOTES
-rw-r--r--. 1 root root 16262 Apr  3 12:06 RUNNING.txt
drwxr-xr-x. 2 root root  4096 Apr 24 23:49 bin
drwxr-xr-x. 3 root root  4096 May 23 08:41 conf
drwxr-xr-x. 2 root root    78 Apr 24 23:49 include
drwxr-xr-x. 2 root root  4096 Apr 24 23:49 lib
drwxrwxrwx. 2 root root  4096 May 23 08:41 logs
drwxr-xr-x. 3 root root  4096 Apr 24 23:49 native-jni-lib
drwxrwxrwx. 2 root root    30 Apr 24 23:49 temp
drwxr-xr-x. 2 root root     6 Apr 24 23:49 webapps
drwxr-xr-x. 7 root root    81 Apr  3 12:04 webapps.dist
drwxrwxrwx. 2 root root     6 Apr  3 12:02 work
root@2cb65acbee53:/usr/local/tomcat# cp -r webapps.dist/* webapps
root@2cb65acbee53:/usr/local/tomcat#

最后访问
在这里插入图片描述
docker 出现

[root@docker ~]# docker run --name centos-bbs -it -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html centos:centos6.9
WARNING: IPv4 forwarding is disabled. Networking will not work.

解决方案

[root@docker ~]# echo "net.ipv4.ip_forward=1" >>/usr/lib/sysctl.d/00-system.conf
[root@docker ~]# systemctl restart network && systemctl restart docker

测试

[root@docker ~]#
[root@docker ~]# docker rm -f $(docker ps -qa)
c1c50dce5366
[root@docker ~]# docker run --name centos-bbs -it -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html centos:centos6.9
[root@2325579ccff8 /]#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值