docker 新手求助, docker 进程一直自动退出

2021-12-23 19:59:45 +08:00
 phlips5437
各位,请教个事情,我执行了以下命令

#docker pull hello-world

#docker run -d hello-world

然后,docker 服务就自己关闭了

运行 systemctl start docker 后我想去 docker kill hello-world

但 docker 服务自己直接停掉

现在该咋整。。。。

我卸载了 docker 再装回去还是这个情况。。。
1302 次点击
所在节点    问与答
11 条回复
mikuazusa
2021-12-23 20:00:39 +08:00
Docker 容器的调试技巧:docker logs 与 docker service logs
WinkeyLin
2021-12-23 20:03:49 +08:00
我猜你是直接 apt install 的,建议用官方脚本安装 curl -fsSL get.docker.com -o get-docker.sh && bash get-docker.sh
安装完之后需要 sudo systemctl enable docker 和 sudo systemctl start docker
Buges
2021-12-23 20:14:31 +08:00
journalctl -b | grep dockerd 先看一下为什么停掉
cdlnls
2021-12-23 21:07:31 +08:00
我猜测 lz 是想描述 hello-world 退出了,而不是 docker 退出了。。。
ch2
2021-12-23 21:25:25 +08:00
挂了之后看日志为啥挂了
systemctl status docker -l
vhui
2021-12-23 21:25:56 +08:00
docker run -d hello-world ,应该是楼上说的情况。
512357301
2021-12-23 22:41:30 +08:00
ubuntu20 和 18 都装过 docker ,按照官网教程装的,目前没发现问题,大部分的镜像都是在 hub.docker.com 里下载的,pull 下来之后,有的会告诉怎么启动这个容器,有的不说,不说的那就只好啃教程了,看教程里写的怎么启动一个容器,教程一般啃菜鸟教程的。
不过一般用不到教程,比如我用 docker 装 clickhouse ,这是一个数据库,它的官网没安装教程,但是在 hub.docker.com 里有它的仓库,有详细说明,具体怎么运行,很详细。
所以千万不要自己在 csdn 里或者博客园里找杂七杂八的教程,有的太老,有的掐头去尾的,容易出问题
Ephzent
2021-12-24 14:13:03 +08:00
@cdlnls 很可能就是这样,hello-world 这个镜像本身就没有持久化
KickAssTonight
2021-12-24 15:42:29 +08:00
等下,是 docker 的 Daemon 停了还是容器 (container) 停了?
reoah2
2021-12-24 17:40:31 +08:00
应该是你 hello world 程序运行完直接 return 0 了吧,getchar() 下
meiyoumingzi6
2021-12-24 18:49:19 +08:00
emmm 印象中 hello-world 那个就是输出一下就退出的
举个栗子,程序干完活,然后退出

回到我们的 docker container 上来说,它执行完也应该要退出的,深挖原因是你启动 docker 的时候 指定了一个程序要执行,它的 pid 为 1 ,他执行完以后退出了,docker 内就没有了 pid 为 1 的进程了,所以整个 container 就退出了,至于为啥 pid1 退出系统就会退出,自己百度下吧(害,还不是因为我菜,这里我解释不清楚

如果你想让他不退出,可以试着使用。docker run -itd hello-world sh 这个命令

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

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

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

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

© 2021 V2EX