我最近在学 docker ,想运行个 linux 的容器耍耍。
发现 Dockerfile 里不给它整个持续运行的命令,它就自动退出了。
各位有什么办法让它常驻吗?
|  |      1Orenoid      2022-03-31 10:51:43 +08:00  1 | 
|      2number      2022-03-31 10:55:41 +08:00 启动个 sshd 服务 | 
|      3bootvue      2022-03-31 11:04:25 +08:00  3 tail -f /dev/null | 
|  |      4hzfyjgw      2022-03-31 11:17:23 +08:00 运行一个实际对外 提供服务的 docker 容器,比如 nginx 之类的 | 
|  |      5lululau      2022-03-31 11:34:37 +08:00 tail -f /dev/null 这个比 while true; do sleep; done 好 👍 | 
|      6xu45525584      2022-03-31 11:44:47 +08:00 在 docker 里跑 pm2 ? 或者 nginx | 
|  |      7xiaoz      2022-03-31 11:47:05 +08:00 via Android 看你容器里面运行的什么程序,部分程序支持前台运行的。不支持的可以用楼上的 tail -f | 
|  |      8plko345      2022-03-31 12:07:36 +08:00 via Android  1 cat 就行吧 | 
|  |      9ksc010      2022-03-31 12:15:49 +08:00 只要入口程序 不退出 容器也不会关闭 这个最好是结合你实际情况 若你只是想 临时测试啥的 可以 用 sleep 100000 若跑自己写的程序, 也可跑 supervisor 这样 通过 supervisor 管理的你程序的重启关闭,且不会导致容器关闭 | 
|      10vuevue      2022-03-31 12:30:21 +08:00 via iPhone  1 —restart=always | 
|  |      11Tink PRO 随便起一个服务 | 
|  |      12cjpjxjx      2022-03-31 12:55:14 +08:00 我一般用 ping 127.0.0.1 命令 | 
|  |      13tylinux      2022-03-31 13:14:26 +08:00 这题我会:docker container run -it xxx /bin/sh ,如果要 daemon 运行就在加个 -d | 
|      15sanwe      2022-03-31 14:19:22 +08:00 好奇你跑的什么东西会自动退出 | 
|  |      16CEBBCAT      2022-03-31 14:27:20 +08:00  1 搞不懂楼主想问什么,发帖前阅读文档了吗? docker run --name myAlpine -itd alpine docker exec -it myAlpine sh | 
|  |      17d5      2022-03-31 14:31:53 +08:00 cat 就行 | 
|      18segama201901      2022-03-31 14:37:43 +08:00 只要容器内 PID1 进程不退出,容器会一直保持运行,一楼链接内例子很全。但是,尽量遵守 one container one process 原则。参考 https://devops.stackexchange.com/questions/447/why-it-is-recommended-to-run-only-one-process-in-a-container 。 | 
|  |      20sadfQED2      2022-03-31 15:31:36 +08:00 via Android CMD /bin/bash | 
|      22szyp      2022-03-31 18:42:07 +08:00 top 就好了啊 | 
|  |      23SbloodyS      2022-03-31 18:46:17 +08:00 | 
|  |      25fstar OP CMD /bin/sh 配合 -td 可以让容器持续运行,不是很懂为什么。 |