将docker升级到Docker版本17.06.2-ce后,我的docker容器无法重新启动。错误消息和我的撰写文件如下:
Starting wordpress ... error
Starting mysql ... error
ERROR: for wordpress Cannot start service wordpress: oci runtime error: container with id exists:
b3951fd8b599c273f39d3b29085d525828a92dabe518f42860ba6535d5edad6e
ERROR: for mysql Cannot start service mysql: oci runtime error: container with id exists: be9c3682bb66720c8015cfe9e9025c68a917204444e9b77f68b63d84f0469b71
======================
docker compose文件是:
services:
wordpress:
image: wordpress
restart: always
ports:
- 80:80
environment:
WORDPRESS_DB_PASSWORD: xxx
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: xxx
我重启了实例但没有工作。 需要你的帮助!
答案 0 :(得分:4)
您是否尝试从docker引擎中删除已停止的容器?
您可以使用docker ps -a
显示所有容器。这将为您提供本地容器的列表(已停止并正在运行)。识别旧的wordpress和mysql容器,并使用docker rm <container-id>
删除它们。删除旧容器后,您应该能够再次运行docker compose文件。
答案 1 :(得分:3)
特定版本升级有documented bug。修复程序位于https://github.com/docker/docker-ce/pull/117/files。
我还没有找到在我的环境下升级到17.06+的正确方法,但是你可以让你的容器再次运行。试试这个:
$ docker start wp
Error response from daemon: oci runtime error: container with id exists: dc9c6a17c102747d81fbad674e93257a5b31f15e0837ed64b39c63eda5e6f46a
Error: failed to start containers: wp
$ docker start wp
wp
$ docker ps | grep wp
dc9c6a17c102 wordpress "docker-entrypoint..." 2 months ago Up 2 minutes 80/tcp wp
我已在Gentoo Forums(针对我的情况)和Github上撰写了相关文章。
答案 2 :(得分:3)
答案 3 :(得分:1)
这是因为系统异常重启导致容器处于不良状态。查找状态信息:
find -name "b3951fd8b599c273f39d3b29085d525828a92dabe518f42860ba6535d5edad6e"
结果应该是:
/run/docker/runtime-runc/moby/b3951fd8b599c273f39d3b29085d525828a92dabe518f42860ba6535d5edad6e
您可以通过以下方式删除状态信息:
sudo rm -rf /run/docker/runtime-runc/moby/b3951fd8b599c273f39d3b29085d525828a92dabe518f42860ba6535d5edad6e/
然后使用以下命令重新启动容器:
docker start b395
那么你应该开始运行了。