jenkins 删除网络时出错:id< network>具有活动端点

dhxwm5r4  于 2023-03-07  发布在  Jenkins
关注(0)|答案(5)|浏览(129)

我正在尝试使用jenkins job运行docker编写。“sudo docker-编写-删除-孤儿”
我在使用docker-compose down时使用了--remove-orphans命令。仍然会出现以下错误。
删除网络时删除网络. abc错误:网络ID***********具有活动端点状态为1的失败命令:sudo停靠器-向下组合--删除-孤立
下面是我的码头作曲:

version: "3.9"
services:
  abc:
    image: <img>
    container_name: 'abc'
    hostname: abc
    ports:
      - "5****:5****"
      - "1****:1***"
    volumes:
      - ~/.docker-conf/<volume>
    networks:
      - <network>

      
  container-app-1:
    image: <img2>
    container_name: 'container-app-1'
    hostname: 'container-app-1'
    depends_on:
      - abc
    ports:
      - "8085:8085"
    env_file: ./.env
    networks:
      - <network>

networks:
  <network>:
    driver: bridge
    name: <network>
cl25kdpy

cl25kdpy1#

要列出您的网络,请运行docker network ls。您应该在那里看到您的<network>。然后使用以下命令获取仍连接到该网络的容器(在命令末尾替换您的网络名称):

docker network inspect \
  --format '{{range $cid,$v := .Containers}}{{printf "%s: %s\n" $cid $v.Name}}{{end}}' \
  "<network>"

对于返回的各种容器ID,您可以检查它们为什么没有停止(检查日志,确保它们是合成项目的一部分,等等),或者如果不再需要它们,则使用以下命令手动停止它们(将<cid>替换为您的容器ID):

docker container stop "<cid>"

然后,您应该能够停止合成项目。

a64a0gku

a64a0gku2#

有一种情况,根本没有容器,但是出错了,然后systemctl restart docker帮了我

pprl5pva

pprl5pva3#

当您有一个db示例运行在单独的container上并使用同一个网络时,也可能发生这种情况。

docker container stop "<cid>"

将停止容器。我们可以使用@BMitch提供的命令找到正在使用网络的容器ID

docker network inspect \
  --format '{{range $cid,$v := .Containers}}{{printf "%s: %s\n" $cid $v.Name}}{{end}}' \
  "<network>"

但在我的情况下,当我这样做时,它也使postgres示例“成为孤儿”。

docker-compose up -d --remove-orphans

之后,我使用docker compose文件启动了一个新的数据库示例(postgres),并将该示例的数据卷目录Map到前一个数据库示例的数据目录。

volumes:
      - './.docker/postgres/:/docker-entrypoint-initdb.d/'
      - ~/backup/postgress:/var/lib/postgresql/data
ttvkxqim

ttvkxqim4#

我的问题只有通过重新启动Docker,然后从Docker桌面手动删除容器才能解决。

p5fdfcr1

p5fdfcr15#

我相信您可以用途:

$ docker network disconnect <network> <container>

断开有问题的容器(如果您知道其名称)与网络的连接,按照:https://docs.docker.com/network/bridge/#disconnect-a-container-from-a-user-defined-bridge:
要断开正在运行的容器与用户定义桥的连接,请使用docker network disconnect命令。

相关问题