怎么启动一个不会自动退出的 docker?

2022 年 3 月 31 日
 fstar

我最近在学 docker ,想运行个 linux 的容器耍耍。

发现 Dockerfile 里不给它整个持续运行的命令,它就自动退出了。

各位有什么办法让它常驻吗?

4833 次点击
所在节点    Docker
25 条回复
Orenoid
2022 年 3 月 31 日
number
2022 年 3 月 31 日
启动个 sshd 服务
bootvue
2022 年 3 月 31 日
tail -f /dev/null
hzfyjgw
2022 年 3 月 31 日
运行一个实际对外 提供服务的 docker 容器,比如 nginx 之类的
lululau
2022 年 3 月 31 日
tail -f /dev/null 这个比 while true; do sleep; done 好 👍
xu45525584
2022 年 3 月 31 日
在 docker 里跑 pm2 ? 或者 nginx
xiaoz
2022 年 3 月 31 日
看你容器里面运行的什么程序,部分程序支持前台运行的。不支持的可以用楼上的 tail -f
plko345
2022 年 3 月 31 日
cat 就行吧
ksc010
2022 年 3 月 31 日
只要入口程序 不退出 容器也不会关闭
这个最好是结合你实际情况 若你只是想 临时测试啥的 可以 用 sleep 100000
若跑自己写的程序, 也可跑 supervisor 这样 通过 supervisor 管理的你程序的重启关闭,且不会导致容器关闭
vuevue
2022 年 3 月 31 日
—restart=always
Tink
2022 年 3 月 31 日
随便起一个服务
cjpjxjx
2022 年 3 月 31 日
我一般用 ping 127.0.0.1 命令
tylinux
2022 年 3 月 31 日
这题我会:docker container run -it xxx /bin/sh ,如果要 daemon 运行就在加个 -d
boris93
2022 年 3 月 31 日
@vuevue #10 这么做的现象会是这个容器反复启动和停止
sanwe
2022 年 3 月 31 日
好奇你跑的什么东西会自动退出
CEBBCAT
2022 年 3 月 31 日
搞不懂楼主想问什么,发帖前阅读文档了吗?

docker run --name myAlpine -itd alpine
docker exec -it myAlpine sh
d5
2022 年 3 月 31 日
cat 就行
segama201901
2022 年 3 月 31 日
只要容器内 PID1 进程不退出,容器会一直保持运行,一楼链接内例子很全。但是,尽量遵守 one container one process 原则。参考 https://devops.stackexchange.com/questions/447/why-it-is-recommended-to-run-only-one-process-in-a-container
bomb77
2022 年 3 月 31 日
@vuevue #10 你确定不加个狗头保命吗?
sadfQED2
2022 年 3 月 31 日
CMD /bin/bash

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844037

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX