我第一次使用码头工具。我为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]
有人可以为此提供帮助吗?
答案 0 :(得分:1)
如果您查看了错误消息,则表明您正在尝试在容器[id]中运行一个入口点,该容器使用已经使用的端口50000。
这就是docker start [id]
不起作用的原因。
这可能是由几件事造成的(让我添加一些而不是具体问题,因为你没有表达很多细节)。
docker exec
应该与已经运行的容器ID一起使用,而不是映像,而不是入口点。所以,也许你错过了docker run
之前的docker exec
。如果db2是您的泊坞窗图像,请尝试docker run -it db2 /bin/bash
。docker container prune
来清理以前退出的容器。docker run
命令中使用端口映射:例如,
docker run -d -p 50001:50000 [docker-image] [entrypoint]
docker run -d -p 50002:50000 [docker-image] [entrypoint]
通过这种方式,您将从不同的端口到相同的50000有几个映射,避免了端口重用的错误,但我不确定这是否是您想要做的。我只是想用你提供的一些小信息来帮助你。我希望无论如何它都有帮助。