入手Docker容器注意事项:命令结束容器退出

Posted dudu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了入手Docker容器注意事项:命令结束容器退出相关的知识,希望对你有一定的参考价值。

在没有 docker 容器的时候,在终端(terminal)中运行 shell 命令,我们知道当终端退出时(比如关闭终端窗口或退出 ssh 会话),终端中执行的命令也会结束。所以,当我们在终端中执行持续运行的任务或服务时,我们需要让其跳出当前 shell 进程,在后台运行(比如以 daemon 方式运行)。

在最近刚接触 docker 容器时,我误以为 docker 容器是一个轻量级的虚拟机(vm),容器启动后,只要我不把容器关闭,可以在其中任意执行 shell 命令,想干啥就干啥。于是,遇到了容器启动后自动退出的问题,比如:如何让docker容器在执行shell命令后不退出运行

后来明白了,docker 容器不是一个轻量级的虚拟机(vm),而是一个轻量级的终端(terminal):

1)它是一个只给你一次机会运行 shell 命令的终端

2)它是一个与其中运行的 shell 命令共存亡的终端(命令结束容器退出,命令运行容器运行)。

如果一个容器启动后不运行任何 shell 命令怎么办,可以通过 docker run -t 命令或 docker compose 文件中的 tty: true 配置解决。

如果一个容器启动后其中运行的 shell 命令会结束怎么办,想尽一切办法不让 shell 命令结束。

 

以上是关于入手Docker容器注意事项:命令结束容器退出的主要内容,如果未能解决你的问题,请参考以下文章

Docker常用命令

如何运行多进程Docker容器

docker容器运行后退出,怎么才能一直运行?

Docker常用命令,值得收藏

docker run 参数说明

docker-基础命令