在Centos8 ,通过docker运行odoo无法连接到数据库的解决办法

admin 2020-4-2 13873

由于Centos8防火墙策略的调整,导致通过docker运行的odoo无法连接到depends的数据库。

在centos8上安装docker可以参考:

https://computingforgeeks.com/install-docker-and-docker-compose-on-rhel-8-centos-8/

https://www.techrepublic.com/article/how-to-install-docker-ce-on-centos-8/


这个问题解决有两个办法:

一、简单粗暴法:

禁用防火墙 firewall

sudo systemctl disable firewalld


二、温柔细腻法:

# 检测docker使用的虚拟网卡,例如:'docker0'
ip link show

# 检测可用的防火墙区域,例如:'public'
sudo firewall-cmd --get-active-zones

# 检查docker虚拟网卡绑定的防火墙区域,很可能是'no zone':
sudo firewall-cmd --get-zone-of-interface=docker0

# 把docker虚拟网卡'docker0'加入到'public'区域。该修改在重载防火墙规则后可见
sudo nmcli connection modify docker0 connection.zone public

# 伪装允许docker通讯(这部分很重要)
sudo firewall-cmd --zone=public --add-masquerade --permanent

# 打开所需要的入向端口(可选)
# sudo firewall-cmd --zone=public --add-port=443/tcp

# 重新载入防火墙规则
sudo firewall-cmd --reload

# 重启docker服务
sudo systemctl restart docker

# 测试ping和DNS是否正常工作(可选):
docker run busybox ping -c 1 172.16.0.1
docker run busybox cat /etc/resolv.conf
docker run busybox ping -c 1 yourhost.local


本方案来源:

https://serverfault.com/questions/987686/no-network-connectivity-to-from-docker-ce-container-on-centos-8




最新回复 (0)
返回