如何在docker中启动后立即使用容器出口

  • 本文关键字:出口 docker 启动 docker
  • 更新时间 :
  • 英文 :


众所周知,我们可以使用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 rundocker-compose up会在没有-d选项的情况下退出,因此它会将日志打印到控制台

  • 如果你想运行一个不同的命令(比如交互式shell(作为主容器命令,你可以像其他容器一样执行

    docker run --rm -it -v ...:/var/lib/mysql/data mysql:5.6 sh
    docker-compose run db sh
    
  • 如果实际问题可以通过环境变量或其他设置来解决,那么您可以将其添加到启动时间配置中,因为您已经在重新创建容器

最新更新