首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自后台进程的错误响应:容器[id]未运行

来自后台进程的错误响应:容器[id]未运行
EN

Stack Overflow用户
提问于 2018-06-13 13:11:20
回答 1查看 18.2K关注 0票数 0

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

代码语言:javascript
运行
复制
sudo docker exec -i -t db2 /bin/bash

我得到了以下错误:

代码语言:javascript
运行
复制
Error response from daemon: Container [id] is not running

我还尝试使用以下命令启动该实例:

代码语言:javascript
运行
复制
sudo docker start [id]

它返回的错误消息为:

代码语言:javascript
运行
复制
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]

有人能帮个忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 16:16:30

如果你看一下你的错误消息,它会显示你试图在一个容器id中运行一个入口点,这个容器id使用了已经被使用的端口50000。

这就是docker start [id]不能工作的原因。

这可能是由几个原因引起的(让我添加一些东西,而不是具体的东西,这是问题所在,因为您没有表达太多细节)。

  • docker exec应该与已经运行的容器id一起使用,而不是图像,也不是入口点。所以,也许你错过了docker exec之前的do docker run。如果db2是您的docker镜像,则尝试执行docker run -it db2 /bin/bash
  • 其他可能是您的容器因任何原因启动并退出入口点,而没有释放端口50000。因此,当你试图在没有释放端口的情况下重新启动时,如果容器退出但没有被移除,其他docker就不可能使用这个端口启动。让我建议您执行docker container prune来清除已退出的前一个containers.
  • Maybe,您正在从同一镜像(可能是db2)启动两个或更多容器,而不进行任何端口映射。如果你想运行同一个docker镜像的多个实例,你可以做两件事:
    1. 使用docker swarm、kubernetes或类似的缩放容器(pod)。它允许您使用相同的端口50000。

    容器在docker run命令中使用端口映射:例如,

    • for first container,do docker run -d -p 50001:50000 [docker-image] [entrypoint]
    • for second container,do docker run -d -p 50002:50000 [docker-image] [entrypoint]这样,您将有几个从不同端口到相同50000的映射,避免了端口重用的错误,但我不确定这是否是您想要做的。我只是想用你provided.

的小信息帮你

无论如何,我希望它能对你有所帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50829434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档