千家信息网

Docker如何实现退出容器不关闭容器

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关Docker如何实现退出容器不关闭容器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。进入docker容器后如果退出容器,容器就会变成Exited的
千家信息网最后更新 2026年11月03日Docker如何实现退出容器不关闭容器

这篇文章给大家分享的是有关Docker如何实现退出容器不关闭容器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

进入docker容器后如果退出容器,容器就会变成Exited的状态,那么如何退出容器让容器不关闭呢?

如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器,这一点很重要,请牢记!

以下示例为退出容器但不关闭容器

[root@localhost ~]# docker attach c600c4519fc8[root@c600c4519fc8 /]# exitexit[root@localhost ~]# docker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS          PORTS        NAMESc600c4519fc8    centos       "/bin/bash"     3 hours ago     Exited (0) 1 second ago            pensive_jackson5a7a0d694651    busybox       "sh"        20 hours ago    Exited (0) 20 hours ago            hungry_vaughan4b0296d18849    hello-world     "/hello"      46 hours ago    Exited (0) 46 hours ago            hopeful_yonath[root@localhost ~]# docker start pensive_jacksonpensive_jackson[root@localhost ~]# docker attach c600c4519fc8Ctrl + P + Q [root@c600c4519fc8 /]# read escape sequence[root@localhost ~]# docker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS          PORTS        NAMESc600c4519fc8    centos       "/bin/bash"     3 hours ago     Up 22 seconds                 pensive_jackson5a7a0d694651    busybox       "sh"        20 hours ago    Exited (0) 20 hours ago            hungry_vaughan4b0296d18849    hello-world     "/hello"      46 hours ago    Exited (0) 46 hours ago            hopeful_yonath

事实上我们可以在启动容器的时候就进行配置,加入-d参数来启动容器,当然,这条命令仅限于启动全新的容器,启动关闭的容器是不可以的。

Tips 1

docker run -d: 后台运行容器,并返回容器ID

以下示例为使用docker -d启动容器并退出

[root@localhost ~]# docker run -i -t -d centos /bin/bash8521b11d5d99535d4cb0080adc5a58a4dd018ecd0751d9945f7da7ab01bec330[root@localhost ~]# docker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS           PORTS        NAMES8521b11d5d99    centos       "/bin/bash"     4 seconds ago    Up 4 seconds                  eager_goldwasserc600c4519fc8    centos       "/bin/bash"     3 hours ago     Exited (0) 28 seconds ago            pensive_jackson5a7a0d694651    busybox       "sh"        20 hours ago    Exited (0) 20 hours ago             hungry_vaughan4b0296d18849    hello-world     "/hello"      46 hours ago    Exited (0) 46 hours ago             hopeful_yonath[root@localhost ~]# docker attach 8[root@8521b11d5d99 /]# uname -r3.10.0-514.el7.x86_64[root@8521b11d5d99 /]# exitexit[root@localhost ~]# docker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS           PORTS        NAMES8521b11d5d99    centos       "/bin/bash"     2 minutes ago    Exited (0) 2 seconds ago            eager_goldwasserc600c4519fc8    centos       "/bin/bash"     3 hours ago     Exited (0) 2 minutes ago            pensive_jackson5a7a0d694651    busybox       "sh"        20 hours ago    Exited (0) 20 hours ago            hungry_vaughan4b0296d18849    hello-world     "/hello"      46 hours ago    Exited (0) 46 hours ago            hopeful_yonath

在这里你可能会发现,使用了-d的命令退出后容器依然还是死了,动手型的朋友可能会发现只是用docker run -d去启动容器也一样是死的

这里其实需要了解的是容器的运行机制,Docker容器在后台运行,必须要有一个前台进程,这里我们让容器有前台程序运行,就可以实现容器的-d 启动后存活

[root@localhost ~]# docker ps -aCONTAINER ID    IMAGE        COMMAND       CREATED       STATUS           PORTS        NAMESc600c4519fc8    centos       "/bin/bash"     3 hours ago     Exited (0) 4 minutes ago            pensive_jackson5a7a0d694651    busybox       "sh"        21 hours ago    Exited (0) 21 hours ago            hungry_vaughan4b0296d18849    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 -aCONTAINER ID    IMAGE        COMMAND         CREATED       STATUS           PORTS        NAMES8aa19c960438    centos       "/bin/bash -c 'nohup…"  2 seconds ago    Up 2 seconds                  adoring_wingc600c4519fc8    centos       "/bin/bash"       3 hours ago     Exited (0) 5 minutes ago            pensive_jackson5a7a0d694651    busybox       "sh"           21 hours ago    Exited (0) 21 hours ago            hungry_vaughan4b0296d18849    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依然是我认为的最佳用法。

感谢各位的阅读!关于"Docker如何实现退出容器不关闭容器"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

容器 运行 后台 进程 内容 前台 命令 更多 示例 篇文章 不错 实用 重要 事实 事实上 全新 参数 只是 文章 时候 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网公司 科技公司 杭州互联网科技公司 奇酷互联网科技公司 宜安科技 互联网金融 银优互联网科技有限公司 上游互联网科技 互联网科技咨询 新华互联网科技校企合作 互联网实体化科技化 湖北码尼互联网科技有限公司电话 世界互联网科技公司市值排名 开一家科技互联网公司需要多少钱 允成互联网科技有限公司融资 高科技互联网发展前景如何 长沙茂晟互联网科技有限公司 35岁以上互联网科技行业 互联网科技包装股 三亚科技创新互联网基地 现代互联网科技公司 数字科技和互联网金融哪个好 疫情对互联网科技公司影响 互联网科技的英文 云创客互联网科技公司 杭州壁岐互联网科技有限公司 佛山市拉法互联网科技有限公司 长沙茂晟互联网科技有限公司 普陀区互联网教育科技管理办法 银川新华互联网科技学校原画 平安好医生打造互联网科技医疗 知域互联网科技有限公司官网
0