c600c4519fc8 centos "/bin/bash" 3 hours ago Exited (0) 2 minutes ago pensive_jackson
5a7a0d694651 busybox "sh" 20 hours ago Exited (0) 20 hours ago hungry_vaughan
4b0296d18849 hello-world "/hello" 46 hours ago Exited (0) 46 hours ago hopeful_yonath
在这里你可能会发现,使用了-d的命令退出后容器依然还是死了,动手型的朋友可能会发现只是用docker run -d去启动容器也一样是死的
这里其实需要了解的是容器的运行机制,Docker容器在后台运行,必须要有一个前台进程,这里我们让容器有前台程序运行,就可以实现容器的-d 启动后存活
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c600c4519fc8 centos "/bin/bash" 3 hours ago Exited (0) 4 minutes ago pensive_jackson
5a7a0d694651 busybox "sh" 21 hours ago Exited (0) 21 hours ago hungry_vaughan
4b0296d18849 hello-world "/hello" 47 hours ago Exited (0) 47 hours ago hopeful_yonath
[root@localhost ~]# docker run -d centos /bin/bash -c "nohup ping -i 1000 www.baidu.com"
8aa19c9604382bc019797ccda831ae1bcebd81d86380b6040d636e03000b440a
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8aa19c960438 centos "/bin/bash -c 'nohup…" 2 seconds ago Up 2 seconds adoring_wing
c600c4519fc8 centos "/bin/bash" 3 hours ago Exited (0) 5 minutes ago pensive_jackson
5a7a0d694651 busybox "sh" 21 hours ago Exited (0) 21 hours ago hungry_vaughan
4b0296d18849 hello-world "/hello" 47 hours ago Exited (0) 47 hours ago hopeful_yonath我这里使用nohup在后台运行一个每1000秒ping一次百度的进程,另外你也可以使用”while true; do echo hello world; sleep 1; done”,无限输出hello world。
另外即便是有进程在后台运行,你进入了容器,输入exit退出,依然会终止容器的运行,请谨记。
Ctrl+P+Q依然是我认为的最佳用法。
您可能感兴趣的文章:Jenkins简介与Docker部署Jenkins的方法详解如何解决docker容器无法通过IP访问宿主机问题Docker创建一个Nginx服务器的方法步骤为docker中的nginx配置https的方法步骤容器Docker入门详解详解Docker+Jenkins+Gitlab+Django应用部署实践Docker入门安装教程(小白篇)yum下载rpm以及相关依赖的方式离线安装dockerDocker利用busybox创建基础镜像(base image)Docker图文详解










