如何在不进入容器的情况下运行Docker容器

6
我有一个Dockerfile。
FROM centos:7

所以我的Dockerfile中没有入口点。 然后我将其构建为镜像。
sudo docker build -t my_container .

然后我开始了。
sudo docker run -t my_container

我打开容器的 tty。
root@my_container_id/

如果我没有使用 -t 启动它,它会在开始后立即停止。 我如何在不启动 tty 和无入口点的情况下运行 Docker 容器?

你的观点是什么?你想要实现什么? - user2915097
我想学习如何从镜像中运行一个容器,什么也不做(不执行脚本,不运行任何程序)并让该容器保持运行状态。我想获取实现这个目标的Docker命令。 - nick_gabpe
尝试运行 docker run -it ubuntu sleep infinity - user2915097
2个回答

17

您可以在分离模式下启动容器:

docker run -it -d my_container

这里的-d选项表示您的容器将在后台以"分离"模式运行。
如果您想连接到容器并进入shell,可以使用以下命令:
docker exec -it my_container /bin/bash

请注意,如果您的容器基于alpine镜像,则需要使用sh,例如:

docker exec -it my_container /bin/sh 

2

您不能这样做。如果容器的主进程正在运行,则容器仍在运行,因此您必须拥有一个主进程,即容器内PID为1的进程,只有该进程在运行,您的容器才会运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接