CentOS安装Docker后运行容器在物理机访问不了的问题
这个问题花了我一个下午一点一点的排查,最终找到解决方案
如果文章成功帮助各位解决了问题,希望可以给博主点点赞转发,谢谢。
第一步
首先确保自己运行的时候有映射端口
以运行Nginx为例子:
docker run --name my-nginx -p 80:80 -v html:/usr/share/nginx/html -d nginx
## --name:容器名字
## -p:第一个端口为本机端口,第二个端口为docker容器内端口,进行映射
## -v:挂载数据卷
## -d:后台运行
第二步
若已经进行端口映射,请检查防火墙是否关闭
systemctl status firewalld
## 如果运行中可直接使用 systemctl stop firewalld 关闭 (仅供学习情况)
第三步
假如防火墙关闭仍然无法访问
则检查网桥是否出现问题
brctl show
## 如果显示无指令 则使用以下命令下载
yum install -y bridge-utils
如果该图上显示 8000.00000000000 以及无挂载容器,可能是网桥出现问题
先将docker服务暂停
systemctl stop docker
然后添加网桥
brctl addbr br0
添加ip字段
ip addr add 172.16.0.1/24 dev br0
启用网桥br0
ip link set dev br0 up
修改docker默认网桥
vim /etc/docker/daemon.json
{
"bridge":"br0"
}
重启docker
systemctl start docker
重新查看网桥
brctl show
可以看到新建的网桥成功挂在了容器,也可以成功访问Nginx了