docker - Docker 从附加容器中退出
问题描述
我现在正在学习 docker 基础知识并坚持这一点:我创建了一个 docker 容器:
docker container run -d -t --name t_d_container linux
fd91f24a79e007d3676b2ab2344b34765829b918672abf4c7995836ad68d0f35
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fd91f24a79e0 oraclelinux "/bin/bash" 6 seconds ago Up 5 seconds t_d_container
docker container attach t_d_container
[root@fd91f24a79e0 /]# exit
但是当我从容器中退出时,它会继续运行并等待我提供输入。所以我每次都必须做CTRL + C。
然后,我尝试了
docker container exec -it t_d_container /bin/bash
正如预期的那样,现在有 2 个进程正在为 bash 运行:
[root@fd91f24a79e0 /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 06:49 pts/0 00:00:00 /bin/bash
root 27 0 0 07:08 pts/1 00:00:00 /bin/bash
有没有其他方法可以从后台运行的容器中退出?
我进一步挖掘。附加到容器后,我无法在附加的容器上执行任何命令。
docker container attach ac9d50c03304
[root@ds001 /]# hostname
它只是坐在那里等我按 CTRL+C。Docker版本:19.03.9
解决方案
如果您已经以交互模式 (-it) 启动容器,请依次尝试以下步骤:
Ctrl+p
Ctrl+q
如果您以守护程序模式 (-d) 启动容器并附加到它,您可以退出它,它仍将在后台运行。
推荐阅读
- c# - 除非以管理员身份运行,否则 PrintVisual 不会打印
- reactjs - RNFB_ANDROID_PERMISSIONS=true 命令在 Windows 上显示错误
- spring-boot - 未使用 springboot 在 DB 中创建表
- unity3d - 如何在 unity-5 中删除“无法合并 android manifest”错误
- python - Python:将列添加到与另一列相关的数据框
- java - 如何在json中获取特定元素
- openshift - 如何确定 OpenShift 3 中是否已经存在卷?
- java - Android 识别在 sim1 或 sim2 中收到的呼叫
- angular - 在 PrimeNG p-table 中设置最小行
- angular5 - 单击用于切换类的 angularclass 的事件