no sandbox present for

no sandbox present for,第1张

no sandbox present for

no sandbox present for
  • 一、问题分析和解决方案?
  • 二、问题修复
    • 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_test
2、容器与网桥的映射关系建立

代码如下(示例):

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5604838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存