Harbor部署步骤:https://www.cnblogs.com/wujiest/p/14009706.html
问题简述:正常按照部署步骤即可正常访问,但我部署完之后,浏览器无法访问,同时检查宿主机发现也无法ping通容器,并且telnet不通端口,开始排查问题所在。
1、检查firewalld以及iptables规则
首先看到firewalld已经是关闭的状态,这里查看iptables的规则。
input规则默认允许,docker-proxy貌似也没看出什么问题
2、检查docker状态
# docker info
先把这些警告处理掉,修改sysctl.conf配置文件
# vim /etc/sysctl.conf ## 添加如下内容 net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-arptables=1 net.ipv4.ip_forward=1 执行命令生效 # sysctl -p
当然这里网络还是不通
3、检查网桥
使用brctl命令,先执行yum install bridge-utils -y 安装软件
brctl show
这是启动harbor容器之后的,因为没保存之前出问题的图,所以只能手动改成之前有问题的情况。
对比没启动容器前的状态
我们可以看到,bridge id在容器启动前后没有任何变化,说明docker的网络存在问题
4、解决方式
删掉bridge,重新创建一个新的网桥
## 步骤 ## 停止docker # service docker stop ## 关闭br-4608e1585b83设备 # ip link set dev br-4608e1585b83 down ## 删除网桥 # brctl delbr br-4608e1585b83 ## 新建网桥 # brctl addbr br-4608e1585b83 ## 添加IP地址 # ip addr add 172.18.0.1/16 dev br-4608e1585b83 ## 开启设备 # ip link set dev br-4608e1585b83 up # service docker start
再次执行brctl show,bridge id发生了改变
主机正常ping通容器网络