gpt4 book ai didi

docker - 来自守护程序的错误响应:容器[id]未运行

转载 作者:行者123 更新时间:2023-12-02 20:47:05 25 4
gpt4 key购买 nike

我是第一次使用docker。我为DB2创建了docker镜像,当开始使用命令登录到实例时,

sudo docker exec -i -t db2 /bin/bash

我收到以下错误:
Error response from daemon: Container [id] is not running

我还尝试通过以下方式启动实例:
sudo docker start [id]

它返回错误消息为:
Error response from daemon: driver failed programming external connectivity on endpoint db2 ([id]): Bind for 0.0.0.0:50000 failed: port is already allocated
Error: failed to start containers: [id]

有人可以帮忙吗?

最佳答案

如果查看错误消息,则表明您正在尝试在使用端口50000的容器[id]中运行一个入口点,该端口已被使用。

这就是docker start [id]不起作用的原因。

这可能是由几件事引起的(让我添加其中一些内容而不是具体内容,这是问题所在,因为您没有表达很多细节)。

  • docker exec应该与已经运行的容器ID一起使用,而不是图像,而不是入口点。因此,也许您错过了docker run之前的docker exec。如果db2是您的docker镜像,请尝试执行docker run -it db2 /bin/bash
  • 其他可能性是您的容器由于任何原因启动了并且退出了,而没有释放端口50000。因此,当您尝试在没有释放端口的情况下重新启动时,如果容器已经退出但未被删除,则其他docker不可能开始使用此端口。让我建议您执行docker container prune来清理退出的先前容器。
  • 也许您是从同一镜像(也许是db2)启动两个或多个容器,而不进行任何端口映射。如果要运行同一docker镜像的多个实例,可以做两件事:
  • 使用docker swarm,kubernetes或类似扩展容器(pod)。它使您可以使用相同的端口50000。
  • docker run命令中使用端口映射:例如,
  • 作为第一个容器,执行docker run -d -p 50001:50000 [docker-image] [entrypoint]
  • 作为第二个容器,执行docker run -d -p 50002:50000 [docker-image] [entrypoint]这样,您将具有从不同端口到同一50000的多个映射,从而避免了端口重用的错误,但是我不确定这是否是您想要的。我只是在帮助您提供您提供的少量信息。

  • 无论如何,我希望它会有所帮助。

    关于docker - 来自守护程序的错误响应:容器[id]未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50829434/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com