docker网络错误 (解决docker故障)

因为停电,运行jumpserver docker 的虚拟机

[root@jumpserverdockerallinone ~]# docker run -d -v /opt/mysql:/var/lib/mysql -v /opt/jumpserver:/opt/jumpserver/data/media -p 80:80 -p 443:443 -p 2222:2222 -e SECRET_KEY=$SECRET_KEY -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN -e DB_HOST=127.0.0.1 -e DB_PORT=3306 -e DB_USER=jumpserver -e DB_PASSWORD=Jmpasswd@2019 -e DB_NAME=jumpserver huangshumao/jms_all_guacamole-1.0.0:704

WARNING: IPv4 forwarding is disabled. Networking will not work.

bc235129f7d91c6d93c0385cfa16fd7ec78941792a1f64582c682b24ccad6e37

docker: Error response from daemon: driver failed programming external connectivity on endpoint laughing_torvalds (52cf561910c31c93844b6c85fe70a0198d52d56cc69455c934d1ae155c305bd5): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 2222 -j DNAT --to-destination 172.17.0.2:2222 ! -i docker0: iptables: No chain/target/match by that name.

(exit status 1)).

在/etc/sysctl.conf添加行net.ipv4.ip_forward=1,然后sysctl -p

cat /etc/sysctl.conf

# sysctl settings are defined through files in

# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.

#

# Vendors settings live in /usr/lib/sysctl.d/.

# To override a whole file, create a new file with the same in

# /etc/sysctl.d/ and put new settings there. To override

# only specific settings, add a file with a lexically later

# name in /etc/sysctl.d/ and put new settings there.

#

# For more information, see sysctl.conf(5) and sysctl.d(5).

net.ipv4.ip_forward=1

vm.overcommit_memory = 1

net.ipv6.conf.all.disable_ipv6=1

[root@jumpserverdockerallinone ~]# sysctl -p

net.ipv4.ip_forward = 1

vm.overcommit_memory = 1

net.ipv6.conf.all.disable_ipv6 = 1

重启network和docker服务

# systemctl restart network && systemctl restart docker

报IPTABLE出错

[root@jumpserverdockerallinone ~]# docker restart jms_guacamole_1 jms_guacamole_2 jms_guacamole_3

Error response from daemon: Cannot restart container jms_guacamole_1: driver failed programming external connectivity on endpoint jms_guacamole_1 (cece584505c9e93d7f018c445a81ef4c21de6942436578a900c6ceb33bcda0ca): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8082 -j DNAT --to-destination 172.17.0.2:8081 ! -i docker0: iptables: No chain/target/match by that name.

(exit status 1))

是因为我前面只重启network没有重启docker服务

---------------------

版权声明:本文为CSDN博主「运维自动化&云计算」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/h106140873/article/details/97111254