【问题标题】:Container in docker is getting started but couldnt be found in "docker ps" commanddocker 中的容器正在启动,但在“docker ps”命令中找不到
【发布时间】:2020-12-14 14:39:47
【问题描述】:

我在 docker 中创建了 2 个容器。但是,其中一个是可见的,而另一个不可见。 语境: 我通过下载 docker jenkins 映像文件创建了 1 个容器,该容器已启动并正在运行,可以使用 docker ps 命令查看。

然后,我尝试创建一个图像文件以供第二个容器使用。 我在VI中用来创建图像文件的脚本:

FROM centos

RUN yum -y install openssh-server

RUN yum install -y passwd

RUN useradd remote_user && \
    echo "1234" | passwd remote_user --stdin &&  \
    mkdir /home/remote_user/.ssh && \
    chmod 700 /home/remote_user/.ssh

COPY remote-key.pub /home/remote_user/.ssh/authorized_keys

RUN chown remote_user:remote_user -R /home/remote_user/.ssh/ && \
    chmod 600 /home/remote_user/.ssh/authorized_keys

CMD /usr/sbin/sshd -D

脚本成功运行,因为“docker-compose build”已成功从脚本构建映像。

成功构建后,我尝试使用以下方式启动它:

[jenkins@localhost jenkins-data]$ docker-compose up -d
jenkins is up-to-date
Starting remote-host ... done

当我在做的时候发布这个:

[jenkins@localhost jenkins-data]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
5c1ee0507091        jenkins/jenkins     "/sbin/tini -- /usr/…"   5 days ago          Up 5 minutes        0.0.0.0:8080->8080/tcp, 50000/tcp   jenkins

它只显示一个容器正在运行,而远程主机容器不可见。 有什么方法可以确保远程主机容器是否实际运行或有任何问题?

docker 和 jenkins 的新手,我们非常感谢任何线索。谢谢。

【问题讨论】:

  • 试试docker ps -a
  • @Paolo 我刚试了一下,发现如下结果: 3bd1095f86f5 jenkins/jenkins "/sbin/tini -- /usr/..." 13 seconds ago Up 10 seconds 0.0.0.0:8080->8080 /tcp, 50000/tcp jenkins 10a430e21300 remote-host "/bin/sh -c '/usr/sb…" 13 秒前退出 (1) 11 秒前 remote-host 7a9e9a154079 200b7c7edd35 "/bin/sh -c /usr/ sbi..." 26 分钟前退出 (127) 26 分钟前
  • 基本上,远程主机以某种方式退出,这就是为什么它可能没有显示在 docker ps 中。为什么它会自动退出?

标签: docker jenkins ssh centos containers


【解决方案1】:

docker ps 只显示正在运行的个容器。

使用docker ps -a,您会看到正在运行和停止的容器。

关于ps,请参阅Docker documentation

可能remote-host 容器不再运行?

【讨论】:

  • 是的,它会自动退出,您能帮忙确定原因吗?以及如何防止它自动关机?
  • @Annu 你的remote-host Dockerfile/docker-compose 服务怎么样?
  • docker-compose.yml 看起来像这样:版本:'3' 服务:jenkins:container_name:jenkins 图像:jenkins/jenkins 端口:-“8080:8080”卷:-$PWD/jenkins_home :/var/jenkins_home 网络:- 网络远程主机:容器名称:远程主机映像:远程主机构建:上下文:centos7 网络:-网络网络:网络:
【解决方案2】:

容器停止,因为 CMD 命令启动的主进程分离并成为守护进程

主进程应附加到终端,因此您必须从 CMD 命令CMD /usr/sbin/sshd -D 中删除-D,或者您可以关注this approach

在分离模式下运行 sshd 并在睡眠时使用以保留容器 运行

【讨论】:

  • 删除 -D dint 有帮助,它仍然退出,只能使用 docker ps -a 看到
猜你喜欢
  • 2015-01-14
  • 2017-10-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 2019-03-11
  • 2023-03-09
  • 1970-01-01
  • 2020-02-12
相关资源
最近更新 更多