fstar
V2EX  ›  Docker

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

  •  
  •   fstar · Mar 31, 2022 · 5663 views
    This topic created in 1678 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    --restart unless-stopped

    🐶
    fstar
    fstar
    OP
    Mar 31, 2022
    25
    CMD /bin/sh 配合 -td 可以让容器持续运行,不是很懂为什么。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2345 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 129ms · UTC 15:47 · PVG 23:47 · LAX 07:47 · JFK 10:47
    ♥ Do have faith in what you're doing.