linux环境docker如何让启动的容器在后台运行
docker run
启动容器的时候,常需要将其在后台运行。
尝试返现,nohup启动docker容器往往会失败报错。
nohup docker run > doc.log &
查阅网络资料发现,docker后台运行容器需要采用特殊方式处理,这里示例两种处理方式。
1 挂起阻塞命令启动容器
docker run后台启动elasticsearch的运行示例如下
docker run -d --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:9.1.3 sleep 99999999999999
设置参数 -d
可以在后台运行,如果没有前台进程,实际运行完docker run
命令后,但显然bash在容器起来后,很快就会结束,导致没有前台进程,容器会处于退出状态,即exited。
这里sleep 99999999999999就充当那个几乎不会退出的前台进程。
2 -td命令结合阻塞启动容器
-d启动
运行容器时,需要有前台进程,-t
提供一个伪终端,类似前面sleep的前台进程。
docker run -itd --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:9.1.3
# -i 不是必需,加了后容器起来后终端返回容器ID
reference
---
docker容器之后台运行
https://www.cnblogs.com/davis12/p/14456227.html
Mac本地docker安装Kibana+ElasticSearch
https://blog.csdn.net/liliang199/article/details/151581138