众所周知,我们可以使用docker start [dockerID]
来启动一个封闭的容器。
但是,如果此容器在启动后立即退出。我该怎么办?
例如,我有一个MySQL容器,它运行起来没有任何问题。但是这个系统坏了。下次我启动这个容器时。它告诉我一个文件是担心的,所以这个容器立即退出
现在我想删除此文件,但此容器无法激活,因此我无法进入此容器来删除此文件。我该怎么办?
如果我想在这个状态容器中打开bash,我该怎么办?
删除容器并启动一个新容器。
docker rm dockerID
docker run --name dockerID ... mysql:5.7
容器通常被视为一次性的;有时需要删除并重新创建容器(更改一些网络或环境选项;升级到基础映像的新版本(。另一方面,容器的状态通常存储在容器文件系统本身之外(您可能有一个docker run -v
或Docker Composevolumes:
选项(,因此它可以在删除和重新创建容器时幸存下来。我几乎从不使用docker start
。
创建一个新容器可以让您绕过docker start
:的限制
如果容器立即退出,但您不知道为什么,
docker run
或docker-compose up
会在没有-d
选项的情况下退出,因此它会将日志打印到控制台如果你想运行一个不同的命令(比如交互式shell(作为主容器命令,你可以像其他容器一样执行
docker run --rm -it -v ...:/var/lib/mysql/data mysql:5.6 sh docker-compose run db sh
如果实际问题可以通过环境变量或其他设置来解决,那么您可以将其添加到启动时间配置中,因为您已经在重新创建容器