最近在docker部署软件的时候,遇到一个问题,为了使容器之间可以通信,然后用了最简单的--net=host这种方法,然后发现从另一台机器上访问服务器的软件访问不了,去掉net=host,外界可以访问软件,但是docker容器之间无法通信了,然后日志显示connecting refused。然后试了一下link和自建网络都不行
最后的解决方案,将防火墙先关掉
//下面一句是查看防火墙状态,running是开着的意思
firewall-cmd --state
//下面一句是关掉防火墙
systemctl stop firewalld.service
,然后使用docker运行的时候加上参数
//docker的容器和宿主机共用网络,这样port就不用映射了,容器之间通信也比较方便,但是不安全,且容易占端口
--net=host
问题解决了