- 一、问题分析和解决方案?
- 二、问题修复
- 1、网桥创建
- 2、容器与网桥的映射关系建立
- 附录
该问题的出现是因为该容器的配置文件损坏或者丢失问题
如图:
使用下面命令查看容器的配置文件是否正常,重点查看Networks配置;
docker inspect 容器ID
由上图判断:Network配置为空,此次问题则可以判断出该容器启动时使用的docker网桥丢失,需重新生成网桥并且重新建立容器和网桥的链接;
注意:使用docker-compose启动容器,如果在docker-compose.yml中不指定network配置,默认生成的网络为docker-compose.yml所在目录的名称_default,如:/home/sailing/docker-compose.yml,则网络名称为sailing_default,容器启动后容器的名称前缀也将为sailing_
# 查看docker网桥 docker network ls二、问题修复 1、网桥创建
丢失的docker网桥创建有两种方式:
1:使用docker network create命令创建(当你清楚docker网段配置和docker network命令时);
2:使用docker-compose生成一个新容器会自动创建默认网络(推荐);
方式一:
手动创建Docker网桥,docker默认的网段为172.17.0.0,新生成的网桥默认17上递增;
# 16为子网掩码,等价于255.255.0.0 docker network create --subnet=172.18.0.0/16 sailing_default
方式二:
添加一个为启动不影响业务的服务如nginx_test,并在docker-compose.yml中添加,然后使用docker-compose up -d nginx_test
然后可通过docker network ls查看已经生成的默认网络
# docker-compose.yml version: '3' services: nginx-test: image: nginx:latest # docker-compose up -d nginx_test2、容器与网桥的映射关系建立
代码如下(示例):
docker network connect 网桥名称 容器ID # 例: # docker network connect sailing_default 43b1450dbb31
重新通过docker inspect 容器ID命令查询容器的配置,无误后可重新启动容器;
附录Docker网络命令:
# 查看网桥 docker network ls # 查询网桥详情 docker network inspect 网桥命令或ID # 创建网桥 # docker network create --subnet=172.18.0.0/16 sailing_default docker network create --subnet=网段配置 网桥名称 # 删除网桥 docker network rm 网络ID # 解除容器绑定的网络 docker network disconnect 网络名称或者ID 容器ID # 指定容器网络 docker network connect 网络名称或者ID 容器ID
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)