【问题标题】:docker-compose down default_network errordocker-compose down default_network 错误
【发布时间】:2017-03-16 18:36:50
【问题描述】:

我有一个带有一些 php、mysql 等启动的 docker-compose。几天后,我无法将它们关闭,因为一切都停止了,而不是 mysql。它总是给我以下错误:

ERROR: network docker_default has active endpoints

这是我的 docker-compose.yml

version: '2'
services:
  php:
    build: php-docker/.
    container_name: php
    ports:
      - "9000:9000"
    volumes:
      - /var/www/:/var/www/
    links:
      - mysql:mysql
    restart: always

  nginx:
    build: nginx-docker/.
    container_name: nginx
    links:
      - php
      - mysql:mysql
    environment:
      WORDPRESS_DB_HOST: mysql:3306
    ports:
      - "80:80"

    volumes:
      - /var/log/nginx:/var/log/nginx
      - /var/www/:/var/www/
      - /var/logs/nginx:/var/logs/nginx
      - /var/config/nginx/certs:/etc/nginx/certs
      - /var/config/nginx/sites-enabled:/etc/nginx/sites-available
    restart: always

  mysql:
    build: mysql-docker/.
    container_name: mysql
    volumes:
      - /var/mysql:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: pw
      MYSQL_USER: florian
      MYSQL_PASSWORD: pw
      MYSQL_DATABASE: database
    restart: always


  phpmyadmin:
    build: phpmyadmin/.
    links:
     - mysql:db
    ports:
     - 1234:80
    container_name: phpmyadmin
    environment:
     PMA_ARBITRARY: 1
     PMA_USERNAME: florian
     PMA_PASSWORD: pw
     MYSQL_ROOT_PASSWORD: pw
    restart: always

docker network inspect docker_default 给我:

[
    {
        "Name": "docker_default",
        "Id": "1ed93da1a82efdab065e3a833067615e2d8b76336968a2591584af5874f07622",
        "Created": "2017-03-08T07:21:34.969179141Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "85985605f1c0c20e5ee9fedc95800327f782beafc0049f51e645146d2e954b7d": {
                "Name": "mysql",
                "EndpointID": "84fb19cd428f8b0ba764b396362727d9809cd1cfea536e648bfc4752c5cb6b27",
                "MacAddress": "02:42:ac:12:00:03",
                "IPv4Address": "172.18.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

更新

好像docker rm mysql -f停止了mysql容器,但是网络正在运行。

使用docker network disconnect -f docker_default mysql 删除了网络但我对我是如何陷入这种情况非常感兴趣。有什么想法吗?

【问题讨论】:

  • 网络上还在运行什么? docker network inspect docker_default 应该列出容器。 mysql 真的在你的 yml 中左对齐并且没有间隔吗?
  • 另外看看你当前是否有容器在运行:docker container ls -a
  • @BMitch 我更新了问题,没有 mysql 不合理,是我的问题。
  • @nateleavitt mysql 正在运行
  • 有什么理由可以看到 mysql 拒绝停止?您可以手动停止它,有可用的日志吗?当您尝试停止它时,请包含命令行的输出。

标签: docker docker-compose


【解决方案1】:

我猜你在当前运行时编辑了 docker-compose 文件...?

有时,如果您在执行docker-compose down 之前编辑 docker-compose 文件,那么 docker-compose 将尝试停止的内容会不匹配。首先运行docker rm 8598560 来停止当前运行的容器。从那里,确保在编辑文件之前执行docker-compose down。停止容器后,docker-compose up 应该可以工作。

【讨论】:

  • 不,我没有在运行时编辑撰写文件。我真的什么都没做。以为我的网络服务器已启动并正在运行。但有时我在连接到 wordpress 时遇到问题。因为数据库问题。然后我试图把它记下来,我的问题开始了......
  • 好的..现在好像运行正常了?
  • 可能是睡眠问题。有时,当 mac 睡眠时,事情可能会不同步。目前 Mac 存在时间问题,但我什至不确定您是否正在运行 Mac。我通常在一天结束时做一个docker-compose down
  • 这个命令在我的情况下不起作用,但docker-compose stop container_id 有帮助
  • @Florian 也许您在运行上下运行之间更改了 docker-compose.yml 文件的路径?我的情况就是这样。
【解决方案2】:

当我在停止容器之前通过 docker-compose.yml 文件重命名服务后添加此问题时,我解决了类似的问题

docker-compose down --remove-orphans

【讨论】:

    【解决方案3】:

    您需要断开陈旧端点与网络的连接。首先,使用

    获取端点名称
    docker network inspect <network>
    

    您可以在输出 JSON 中找到您的端点:Containers -&gt; Name。现在,只需通过以下方式强制断开它们:

    docker network disconnect -f <network> <endpoint>
    

    【讨论】:

    • 在我们的例子中,inspect 中没有任何端点。
    • 我遇到了同样的问题,没有端点。 docker system prune - 帮助
    【解决方案4】:

    不幸的是,以上都不适合我。重启docker服务解决了问题。

    【讨论】:

      【解决方案5】:

      我碰巧遇到了这个错误消息,因为我有两个同名的网络(复制/粘贴错误)。

      我做了什么来解决它:

      • docker-compose down - 忽略错误
      • docker network list - 注意是否有任何容器正在使用它并在必要时停止
      • docker network prune 删除所有悬空网络,尽管您可能只想 docker network rm &lt;network name&gt;
      • 将第二个网络重命名为唯一名称
      • docker-compose up

      【讨论】:

      • docker-compose up --remove-orphans 删除剩余容器
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      • 2017-05-03
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多