Docker使用错误小结
一、docker端口映射到宿主机后外网无法访问(防火墙已关闭)解决方法:
#启用IP路由转发功能:
# echo 1 > /proc/sys/net/ipv4/ip_forward
或者
# sysctl -w net.ipv4.ip_forward=1
#以上两种方法都可能立即开启路由功能,但如果系统重启,或重启网卡所设置的值即会丢失。
#如果想永久保留配置,可以修改/etc/sysctl.conf文件
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重新加载系统参数
# sysctl -p
查看是否修改成功
# sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
二、 windows宿主机无法ping通vmware中安装的docker
截图为vmware中ip地址,centos7虚拟机(192.168.110.128),docker网段(10.10.100.0)
http://i2.运维网.com/images/blog/201809/14/830c54d147fe50826756fa09dd2fb0b4.png
现象:
[*]centos7虚拟机ip可以与上面安装的docker网段互通;
[*]docker网段内容器可以ping通windows宿主机;
[*]windows宿主机无法ping通docker网段;
解决方法:
手动在windows宿主机上添加一条路由策略
route add 10.10.100.0 MASK 255.255.255.0 192.168.110.128
三、 Error response from daemon: driver failed programming external connectivity on endpoint pensive_panini
现象:
# sudo docker run -d --restart=always -p 80:80 rancher/server
9d918ae01d60dc5ad749f98cc93fc144231051c7f8ab7a32d873ab6b3157fd38
docker: Error response from daemon: driver failed programming external connectivity on endpoint pensive_panini (fb0be019dff5a5824452718fa556c5d8264e76a2addacadbaf1b8fc23cae2855):(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 10.10.100.2:80 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).
解决方法:
[*]docker服务启动时定义的自定义链DOCKER由于某种原因被清掉
[*]重启docker服务及可重新生成自定义链DOCKER
# systemctl restart docker
# docker container restart 9d918
页:
[1]