
启动命令:
$ 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