
啟動指令:
$ docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 --hostname testrabbit rabbitmq:3-management
啟動成功
但是在區域網路另一台電腦上屬兔IP:PORT後無法通路
$ 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