Cannot start service test1: b'endpoint with name test1 already exists in network ... docker 网络被占用

docker网络基本知识

默认网络

# 查看网络
docker network ls

bridge、none、host这 3 个网络包含在 Docker 实现中。运行一个容器时,可以使用 the –net标志指定您希望在哪个网络上运行该容器。您仍然可以使用这 3 个网络。

  • bridge 网络表示所有 Docker 安装中都存在的 docker0 网络。除非使用 docker run –net=选项另行指定,否则 Docker 守护进程默认情况下会将容器连接到此网络。在主机上使用 ifconfig命令,可以看到此网桥是主机的网络堆栈的一部分。
  • none 网络在一个特定于容器的网络堆栈上添加了一个容器。该容器缺少网络接口。
  • host 网络在主机网络堆栈上添加一个容器。您可以发现,容器中的网络配置与主机相同。

自定义网络

创建网络

docker network create --driver=bridge --subnet=172.18.1.0/16 bridge_test

查看新建网络的信息

docker network inspect bridge_test

启动容器连接到新建网络 bridge_test

docker run -it --name mongo_test -net=bridge_test mongo:3.4 /bin/bash

再次查看网络信息docker network ls 可以看到挂载的容器

动态的讲容器挂载到某网络上

docker run -itd --name test1 mongo:3.4 
# 挂载
docker network connect bridge_test test1
# 查看
docker network inspect bridge_test

遇到的报错信息

网络被占用
Cannot start service rs_shard_server2: b'endpoint with name rs_shard_server2 already exists in network mongocluster_default'

利用docker-compose启动的容器 使用 docker rm 命令删除后仍然会被占用, 需要手动清理
解决办法

# 删除容器
docker rm -f <容器名>
# 清理网络占用
docker network disconnect --force <网络模式> <容器名>
# 查看网络信息
docker network inspect <网络模式>
docker-compose 加入已存在的网络

docker-compose.yaml

version: '2'
networks:
  mongocluster_default:
    external: true
services:
  rs_shard_server2:
    image: mongo:3.4
    command: mongod -f /etc/mongod/mongod.conf --directoryperdb --shardsvr --replSet "rs-shard2-server"
    networks:
     - "mongocluster_default"
    volumes:
      -/vol/key.file:/data/mongodb/key.file
      -/vol/shard2/config:/etc/mongod
      - /vol/shard2/db:/data/db
    ports:
      - "27018:27018"
    restart:
      always
    container_name:
      rs_shard_server2
    ulimits:
      nofile:
        soft: 300000
        hard: 300000

若出现以下报错

Service "rs_shard_server2" uses an undefined network "mongocluster_default"

请确在services同级声明一下外部网络

networks:
  mongocluster_default:
    external: true
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值