错误内容

(base) [root@db1 software]# docker-compose up -d
WARN[0000] /home/openlab/chatdi/software/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
[+] Running 7/7
 ✔ Network software_default                                          Created                                                                                                                                              0.0s 
 ✔ Container yiask_mongo                                             Started                                                                                                                                              0.5s 
 ✔ Container yiask_clickhouse                                        Started                                                                                                                                              0.7s 
 ! clickhouse IPv4 forwarding is disabled. Networking will not work.                                                                                                                                                      0.0s 
 ! mongo IPv4 forwarding is disabled. Networking will not work.                                                                                                                                                           0.0s 
 ✔ Container yiask                                                   Started                                                                                                                                              1.1s 
 ! app IPv4 forwarding is disabled. Networking will not work.

修复方法

这个警告信息表明 Docker 容器的 IPv4 转发功能被禁用了。虽然容器可能仍然可以运行,但网络功能可能会受到影响。以下是解决方案:

1. 立即解决方法

启用 IPv4 转发:

# 临时启用(重启后失效)
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# 或者直接执行
sudo sysctl net.ipv4.ip_forward=1

2. 永久解决方案

编辑 sysctl 配置文件:

# 备份原配置
sudo cp /etc/sysctl.conf /etc/sysctl.conf.bak

# 确保以下行存在且未被注释
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf

# 重新加载配置
sudo sysctl -p

3. 检查当前状态

# 检查 IPv4 转发状态
sysctl net.ipv4.ip_forward

# 检查 Docker 网络
docker network ls
docker network inspect software_default

4. 重启 Docker 服务

# 重启 Docker 服务
sudo systemctl restart docker

# 重新启动容器
docker-compose down
docker-compose up -d

5. 如果问题仍然存在

检查防火墙设置:

# 检查 iptables 规则
sudo iptables -L

# 如果使用 firewalld
sudo firewall-cmd --list-all

6. 验证解决方案

# 检查容器网络连接
docker exec -it yiask ping google.com
docker exec -it yiask_mongo ping clickhouse

# 检查容器日志
docker-compose logs

完成这些步骤后,IPv4 转发警告应该会消失,容器网络功能将恢复正常。如果问题仍然存在,请检查系统的网络配置和防火墙设置。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐