CentOS映像没有运行?

时间:2016-06-08 08:18:30

标签: docker

我在背景中下载了作为守护进程执行的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分钟发布一次???学习必须是自发的和互动的。

4 个答案:

答案 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