【问题标题】:Docker, dangling container?Docker,悬空容器?
【发布时间】:2018-08-01 10:23:12
【问题描述】:

我无法启动我的 docker-compose 环境,因为端口是由某些东西分配的。

ERROR: for ***** Cannot start service *****: driver failed programming external connectivity on endpoint ***** (4314ec13837d41ca8ef1b7e1d8446ab8cfa96136539a75ac763ba1cf538ffdc1): Bind for 0.0.0.0:8881 failed: port is already allocated
Encountered errors while bringing up the project.

但是,没有这样的容器

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

但是当我检查 docker-compose 网络时,我可以在网络中看到一个容器

$ docker network inspect *****
[
    {
        "Name": "*****",
        "Id": "56d09f51e8fe5a9ad11dd6cdaff7e89983f519fd1ecff08116c2e48a3b34ff32",
        "Created": "2018-08-01T08:17:30.704352821Z",
        "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": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "08a5defa5ceae7a5a5ac7ec85f5ecd0924ecb4e5eacca4f5752049e32a0f190c": {
                "Name": "08a5defa5cea_*****",
                "EndpointID": "5d081a19b5ffe4e893965a4306668059900812532cc4995e168ce017f2765e12",
                "MacAddress": "02:42:ac:12:00:06",
                "IPv4Address": "172.18.0.6/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "*****",
            "com.docker.compose.project": "docker"
        }
    }
]

但无法移除此容器

docker rm -f *****
Error: No such container: *****

如何进行?

【问题讨论】:

  • 你有其他服务在8881上运行吗?
  • 否,但重启 docker-machine 解决了问题。这可能是一个 docker 错误。
  • 或者你可以试试docker network disconnect containerId

标签: docker docker-compose containers


【解决方案1】:

我运行这个脚本来关闭所有卡住的容器,这些容器有时会逗留

#!/bin/bash

# ... bring down all containers

force_it=""  #  normal
# force_it=" -f "  #  when you see  "device or resource busy"

for curr_container_id in $( docker ps -q ); do

    echo curr_container_id $curr_container_id
    echo
    echo "docker stop $curr_container_id "
          docker stop $curr_container_id
    echo
    echo "docker rm $force_it $curr_container_id "
          docker rm $force_it $curr_container_id
done

for curr_container_id in $( docker ps -q -a ); do

    echo curr_container_id $curr_container_id
    echo
    echo "docker stop $curr_container_id "
          docker stop $curr_container_id
    echo
    echo "docker rm $force_it $curr_container_id "
          docker rm $force_it $curr_container_id
done

它在 99% 的时间都可以工作...如果不在顶部附近,您可以切换 force parm 并重新运行它...这样您就可以避免反弹任何 docker 服务器

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 2020-05-22
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    相关资源
    最近更新 更多