Closed JL-Code closed 3 years ago
在安装好Docker后,结果没有网络,经过排查发现是没有开启ip转发。正常情况下,Docker会自动开启地址转发。但是,不知道为什么Docker在Centos8中没有开启iptables的地址转发,需要我们使用firewalld防火墙管理工具来手动开启IP地址转发功能。 检查iptables 接下来会清除iptables现有规则,如果你一直使用的是firewalld来管理你的防火墙,就没必要查看现有的iptbales规则了。 iptabels -L 临时关闭firewalld和docker服务 systemctl stop firewalld docker 清除现有防火墙规则 由于docker启动容器时会在iptables中添加规则,我们先把原来 iptables -P INPUT ACCEPT 先放行规则,非常重要! 否则22端口也就是你的SSH服务可能再也连不上了。 iptables -F 清除所有规则 开启端口转发 1、开启内核IP地址转发功能 首先查看内核是否开启IP地址转发功能 cat /proc/sys/net/ipv4/ip_forward 返回为1已开启,返回0则需要手动开一下。 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf 复制到终端上!以root用户身份执行。 sysctl -p 使更改立即生效。 2、防火墙放行IP地址转发 现在将firewalld服务启动 systemctl start firewalld 默认情况下firewalld会禁止转发流量,可以执行firewall-cmd --query-masquerade查看状态,应该是no,请执行下面的命令开启转发。 firewall-cmd --add-masquerade --permanent 永久开启IP地址转发 firewall-cmd --reload 重载防火墙规则,使之生效
使用 docker stack deploy 部署时报 No DataSource Set
docker-compose.yml 配置文件:
nacos.log 日志:
nacos 容器内的环境变量
有个奇怪的现象: 当 MYSQL_SERVICE_HOST 改为节点 IP 地址后,就可以正常启动,但是使用 mysql 服务名时则无法连接到 mysql