解决CentOS中docker容器无法被物理机访问

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

解决CentOS中docker容器无法被物理机访问_第1张图片
可以看到新建的网桥成功挂在了容器,也可以成功访问Nginx了
解决CentOS中docker容器无法被物理机访问_第2张图片

你可能感兴趣的:(学习心得分享,docker,centos,容器)