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

发布于 2022-09-02 01:59:55 字数 47 浏览 18 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

你在看孤独的风景 2022-09-09 01:59:56

你可以这样

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

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

 docker ps -a

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

雨的味道风的声音 2022-09-09 01:59:56

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

番薯 2022-09-09 01:59:56

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

日暮斜阳 2022-09-09 01:59:56

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

2022-09-09 01:59:56
$ docker run -d --name test_sleep_infinity your_image sleep infinity
# enter the container
$ docker exec -it test_sleep_infinity /bin/bash
黑寡妇 2022-09-09 01:59:56

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

秋心╮凉 2022-09-09 01:59:56

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

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

我猜你意思是跑某个操作系统的容器,然后在里面装很多软件,可以这样做:

docker run -d -name centos --privileged=true centos /usr/sbin/init
docker exec -it centos /bin/bash

这样,你就拥有了centos的环境了。而且,你退出bash,容器也还是会一直运行。但是,这样不符合docker的设计理念哈。

一花一树开 2022-09-09 01:59:56
docker run -d --name "ubuntu1804" library/ubuntu:18.04 init

init会启动systemd,一直在后台驻留。

虫児飞 2022-09-09 01:59:56

docker container run -dt -p 8000:3000 -it image

回心转意 2022-09-09 01:59:56
docker run -d .....

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

眼波传意 2022-09-09 01:59:56

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文