我是第一次使用 docker。我为 DB2 创建了 docker 映像,当开始使用命令登录实例时,
sudo docker exec -i -t db2 /bin/bash
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error response from daemon: Container [id] is not running
Run Code Online (Sandbox Code Playgroud)
我还尝试使用以下命令启动实例:
sudo docker start [id]
Run Code Online (Sandbox Code Playgroud)
它返回的错误消息为:
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]
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
如果您查看错误消息,它表明您正在尝试在使用端口 50000 的容器 [id] 中运行入口点,该端口已被使用。
这就是为什么docker start [id]不起作用。
这可能是由多种原因引起的(让我添加其中一些而不是具体问题,因为您没有表达很多细节)。
docker exec应该与已经运行的容器 ID 一起使用,而不是图像,而不是入口点。docker run所以,也许你之前错过了docker exec。docker run -it db2 /bin/bash如果 db2 是你的 docker 镜像,请尝试执行此操作。docker container prune退出的以前的容器。docker run:例如,
docker run -d -p 50001:50000 [docker-image] [entrypoint]docker run -d -p 50002:50000 [docker-image] [entrypoint]
这样,您将拥有从不同端口到相同 50000 的多个映射,避免出现端口重用的错误,但我不确定这是否是您想要做的。我只是想通过您提供的少量信息来帮助您。无论如何我希望它有帮助。