我在背景中下载了作为守护进程执行的centos基本图像,然后厌倦了进入终端而无法进入。
我的主机是Ubuntu 16.04。
以下是我执行的步骤:
主机操作系统版本Ubuntu16.04
root@jim-Ubuntu1504:/home/jim/web# lsb_release -a No LSB modules are
available. Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS
Release: 16.04 Codename: xenial
root@jim-Ubuntu1504:/home/jim/web#
按照以下命令启动泊坞窗
root@jim-Ubuntu1504:/home/jim/web# docker run -d --name=my_centos centos
Unable to find image 'centos:latest' locally
latest: Pulling from library/centos
a3ed95caeb02: Pull complete
da71393503ec: Pull complete
Digest: sha256:1a62cd7c773dd5c6cf08e2e28596f6fcc99bd97e38c9b324163e0da90ed27562
Status: Downloaded newer image for centos:latest
63f4b8fce1bd44253bb420436da3ad5b8f532b253fc9e74ff52ad1b2f9844251
root@jim-Ubuntu1504:/home/jim/web# docker exec -i -t my_centos bash
Error response from daemon: Container 63f4b8fce1bd44253bb420436da3ad5b8f532b253fc9e74ff52ad1b2f9844251 is not running
不知道为什么会退出
root@jim-Ubuntu1504:/home/jim/web# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63f4b8fce1bd centos "/bin/bash" 18 minutes ago Exited (0) 18 minutes ago my_centos
f0ca8b9f4fa5 nginx "nginx -g 'daemon off" 23 minutes ago Up 23 minutes 80/tcp, 443/tcp my_nginxtemp
bb9ab4958c33 nginx "nginx -g 'daemon off" About an hour ago Up About an hour 80/tcp, 443/tcp boring_aryabhata
886d174f641d nginx "nginx -g 'daemon off" 2 hours ago Up 2 hours 80/tcp, 443/tcp mad_fermat
root@jim-Ubuntu1504:/home/jim/web#
启动容器,但不知道为什么要退出
root@jim-Ubuntu1504:/home/jim/web# docker start 63f4b8fce1bd
63f4b8fce1bd
root@jim-Ubuntu1504:/home/jim/web# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
63f4b8fce1bd centos "/bin/bash" 26 minutes ago Exited (0) 2 seconds ago my_centos
f0ca8b9f4fa5 nginx "nginx -g 'daemon off" 30 minutes ago Up 30 minutes 80/tcp, 443/tcp my_nginxtemp
bb9ab4958c33 nginx "nginx -g 'daemon off" About an hour ago Up About an hour 80/tcp, 443/tcp boring_aryabhata
886d174f641d nginx "nginx -g 'daemon off" 2 hours ago Up 2 hours 80/tcp, 443/tcp mad_fermat
root@jim-Ubuntu1504:/home/jim/web# docker exec -i -t my_centos bash
Error response from daemon: Container 63f4b8fce1bd44253bb420436da3ad5b8f532b253fc9e74ff52ad1b2f9844251 is not running
root@jim-Ubuntu1504:/home/jim/web#
PS:有人禁止限制每90分钟发布一次???学习必须是自发的和互动的。
答案 0 :(得分:3)
如果您查看CentOS最新图像的Dockerfile,您会注意到最后一行from here:
CMD ["/bin/bash"]
所以你启动一个有shell的容器,它就存在了,就是这样。
尝试:
docker run -it --name=my_centos centos sleep infinity
或任何变体。
顺便说一下,当你做的时候
root@jim-Ubuntu1504:/home/jim/web# docker exec -i -t my_centos bash
您认为您的容器正在运行,而这里不是。
检查:
docker ps -a --filter="name=my_centos"
您的容器已启动。
答案 1 :(得分:3)
您正在寻找以centos
模式运行detached
容器。
请尝试以下方法......
sudo docker run -d -it centos
答案 2 :(得分:2)
您必须以交互模式运行图像才能连接到它。
docker run -it centos
-it
指示Docker分配连接到容器stdin的伪TTY;在容器中创建交互式bash shell。
运行该命令后可以预料到这一点。
docker@default:~$ docker run -it centos
[root@0c3c7d59b91c /]#
答案 3 :(得分:0)
当我们尝试启动容器时,它执行bash,并且bash无法找到控制终端,因为centos的docker容器在形成时立即停止。要提供终端以及在分离模式下运行它,您可以使用:
docker container run -it --name centos7 -d centos:latest
这将以分离模式运行docker容器,并且还将控制终端分配给bash,因为哪个容器不会停止。 稍后进入容器,您可以使用:
docker container exec -it <container-id> bash