我尝试关闭docker-compose文件中定义的外部网络的所有服务(使用版本2)。
当我尝试docker-compose down
时,我收到一条消息说明,
网络' your_network'是外部的,跳过
有没有办法使用docker-compose来停止和删除用户定义或外部网络的所有容器?
答案 0 :(得分:1)
我遇到了同样的错误。 docker-compose只能停止docker-compose启动的容器。 就我而言:我想要停止的容器是由docker run启动的。 所以我一个接一个地停下了容器。然后用docker-compose.yml
启动它们不确定你是否是同一案件。
答案 1 :(得分:0)
Docker错误消息(通常)总是异常。
最初,我有多个使用自定义网络的服务,如下所示:
version: '3'
networks:
mynet:
external: true
services:
nexus-repository:
image: sonatype/nexus3
ports:
- '8082:8081'
networks:
- mynet
volumes:
- '/nexus-data:/nexus-data'
要删除我尝试过的容器:
sudo docker-compose down
=>否ssudo docker network remove mynet
=>否sudo docker-compose rm -sfv nexus-repository
=>否在我完全删除所有对外部网络的引用之前,什么都没做。
解决方案
services:
nexus-repository:
image: sonatype/nexus3
ports:
- '8082:8081'
volumes:
- '/nexus-data:/nexus-data'
没有了:
网络“ mynet”是外部的,正在跳过
没有更多的容器了!
答案 2 :(得分:0)
这不是错误。您拥有一个声明为“外部”的网络,这主要意味着该网络可能会被其他服务或其他docker-compose文件使用。因此,当您停止这些服务时,网络将被“跳过”,因为该网络在引用它的所有服务之间共享,并且在尝试删除外部网络时会产生错误。