Heim  >  Fragen und Antworten  >  Hauptteil

container - 为了让docker容器一直运行难道要写个死循环的程序?

为了让docker容器一直运行难道要写个死循环的程序?
我想让容器一直运行

ringa_leeringa_lee2758 Tage vor1553

Antworte allen(9)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-04-24 09:11:36

    $ docker run -d --name test_sleep_infinity your_image sleep infinity
    # enter the container
    $ docker exec -it test_sleep_infinity /bin/bash

    Antwort
    0
  • PHPz

    PHPz2017-04-24 09:11:36

    docker run -d .....

    -d 参数就是让docker一直在后台持续运行,

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:11:36

    你run的命令要是可持续运行的,不能像ls一样运行完就停止了,然后加上-d就可以了

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-24 09:11:36

    如果你想使用 -d 后台运行,目前只能使用可持续运行的命令,否则运行完成就会停止了。

    Antwort
    0
  • 迷茫

    迷茫2017-04-24 09:11:36

    不是特别明白你的场景, 我看你问了好几个docker相关问题, 给你几个条命令供你参考,希望对你有用.

    创建启动容器   docker run -itd <image-di> /bin/bash
    单纯启动容器   docker start <container-id>
    连接容器      docker attach <container-id>
    回到宿主机    ctrl+p,ctrl+q      

    Antwort
    0
  • 黄舟

    黄舟2017-04-24 09:11:36

    可以前台运行个程序就可以了,或者使用supervisor来管理运行的程序

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-24 09:11:36

    你可以这样

     CMD tail -f /var/log/cron.log 
    

    在DockerFile中运行一个持续输出的任务
    好吧,这也差不多是一个死循环

     docker ps -a
    


    在这里可以看出docker的运行状态,,up的就是一直运行,exit就是跑完了就退出了~docker跑完了你要它执行的任务就会退出~所以你得写个持续的命令

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-24 09:11:36

    哪怕加了 -d 只要命令跑完了docker就会认为自己已经没事干了,于是自动退出
    要让容器后台运行,必要要有一个前台进程
    可以在命令后加 top,tail之类的一直前台运行的进程

    Antwort
    0
  • 黄舟

    黄舟2017-04-24 09:11:36

    我去,楼上的各位都没有理解楼主的意思。。。他的意思是docker内部没有持续的运行(即在后台运行)。
    要想docker一直运行不退出,可以使用supervisord

    Antwort
    0
  • StornierenAntwort