V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fstar
V2EX  ›  Docker

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

  •  
  •   fstar · 134 天前 · 2688 次点击
    这是一个创建于 134 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    docker run --name myAlpine -itd alpine
    docker exec -it myAlpine sh
    d5
        17
    d5  
       134 天前
    cat 就行
    segama201901
        18
    segama201901  
       134 天前
    只要容器内 PID1 进程不退出,容器会一直保持运行,一楼链接内例子很全。但是,尽量遵守 one container one process 原则。参考 https://devops.stackexchange.com/questions/447/why-it-is-recommended-to-run-only-one-process-in-a-container
    bomb77
        19
    bomb77  
       134 天前
    @vuevue #10 你确定不加个狗头保命吗?
    sadfQED2
        20
    sadfQED2  
       134 天前 via Android
    CMD /bin/bash
    vuevue
        21
    vuevue  
       134 天前 via iPhone
    @bomb77 🙈确实一直运行呀
    szyp
        22
    szyp  
       134 天前
    top 就好了啊
    SbloodyS
        23
    SbloodyS  
       134 天前
    jfdnet
        24
    jfdnet  
       134 天前   ❤️ 1
    @vuevue

    --restart unless-stopped

    🐶
    fstar
        25
    fstar  
    OP
       134 天前
    CMD /bin/sh 配合 -td 可以让容器持续运行,不是很懂为什么。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1037 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:08 · PVG 05:08 · LAX 14:08 · JFK 17:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.