V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
phlips5437
V2EX  ›  问与答

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

  •  
  •   phlips5437 · 2021-12-23 19:59:45 +08:00 · 1396 次点击
    这是一个创建于 1064 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位,请教个事情,我执行了以下命令

    #docker pull hello-world

    #docker run -d hello-world

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

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

    但 docker 服务自己直接停掉

    现在该咋整。。。。

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

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

    如果你想让他不退出,可以试着使用。docker run -itd hello-world sh 这个命令
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5276 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 03:40 · PVG 11:40 · LAX 19:40 · JFK 22:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.