在用docker启动nginx后,通过ip地址无法访问

docker run -d --name  mynginx -p 80:80 nginx

Linux转发是要开启内核转发功能net.ipv4.ip_forward的,于是检查内核转发是否打开

[root@VM-20-17-centos ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

这里发现内核转发是处于关闭状态的(0代表内核转发没有打开)这里手动echo命令开启内核转发,并再次查询内核转发是否开启

[root@VM-20-17-centos ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@VM-20-17-centos ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

这个时候在通过ip访问就OK了
永久生效的话 vim /etc/sysctl.conf,手动修改 ,sysctl -p 重新加载