docker容器运行后退出,怎么才能一直运行?

原创
admin 3周前 (08-22) 阅读数 58 #Docker
文章标签 Docker

Docker容器运行后退出?怎么才能一直运行?

    在使用Docker的过程中,我们大概会遇到容器运行一段时间后自动退出的情况。这种情况通常是归因于容器内执行的程序执行完毕或者出现失误允许的。那么,怎样让Docker容器一直运行呢?本文将为您解答这个问题。

一、使用守护进程运行容器

    要让容器一直运行,可以将容器内的应用作为守护进程运行。例如,使用以下命令启动一个Nginx容器:

docker run -d --name myNginx -p 8080:80 Nginx

    这里的 -d 参数描述后台运行容器,容器名称为 mynginx,将容器的80端口映射到宿主机的8080端口。

二、使用无限循环

    如果您的应用没有提供守护进程模式,可以尝试在容器内使用无限循环让容器保持运行。例如,以下Dockerfile片段:

FROM ubuntu

CMD ["/bin/bash", "-c", "while true; do echo 'Hello, World!'; sleep 1; done"]

    这段代码将创建一个逐步输出 "Hello, World!" 的容器。

三、使用 tinidockerize

    有些时候,使用无限循环大概不是最佳方案。这时,可以使用 tinidockerize 这样的工具来维持容器的运行。

    1. 使用 tini

docker run -d --init --name mycontainer myimage

    2. 使用 dockerize

FROM mybaseimage

RUN wget https://github.com/jwilder/dockerize/releases/download/v0.6.1/dockerize-Linux-amd64-v0.6.1.tar.gz \

&& tar -C /usr/local/bin -xzvf dockerize-Linux-amd64-v0.6.1.tar.gz \

&& rm dockerize-Linux-amd64-v0.6.1.tar.gz

CMD ["dockerize", "-wait", "tcp://mydb:3306", "-timeout", "30s", "myapp"]

四、总结

    通过以上几种方案,我们可以让docker容器一直运行。利用实际情况选择合适的方法,可以让我们的容器管理更加方便和高效。


本文由IT视界版权所有,禁止未经同意的情况下转发

热门