天天看點

docker rabbitmq_docker啟動rabbitmq後不能外部通路

docker rabbitmq_docker啟動rabbitmq後不能外部通路

啟動指令:

$ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 --hostname testrabbit rabbitmq:3-management

啟動成功

docker rabbitmq_docker啟動rabbitmq後不能外部通路

但是在區域網路另一台電腦上屬兔IP:PORT後無法通路

docker rabbitmq_docker啟動rabbitmq後不能外部通路

$ sudo systemctl stop firewalld.service

之後可以正常通路, 應該是防火牆沒有開放端口

$ sudo systemctl start firewalld.service

$ sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent

$ sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

$ sudo firewall-cmd --reload

結果還是不能通路

檢視日志

$ sudo tail /var/log/firewalld

2020-02-25 15:09:03 WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' failed: iptables: Bad rule (does a matching rule exist in that chain?).

查資料後得知, docker預設會自動添加iptables rule

嘗試修改docker.service禁止修改iptables

$ sudo vim /lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

修改為:

ExecStart=/usr/bin/dockerd -H fd:// --iptables=false --containerd=/run/containerd/containerd.sock

$ sudo systemctl daemon-reload

$ sudo systemctl restart docker

重新啟動容器後就能成功通路了

$ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 --hostname testrabbit rabbitmq:3-management

docker rabbitmq_docker啟動rabbitmq後不能外部通路

繼續閱讀