当前位置: 首页 > 面试题库 >

Docker容器未启动(Docker启动)

公良凯
2023-03-14
问题内容

我使用以下命令创建了容器:

docker run -d -p 52022:22 basickarl/docker-git-test

以下是命令:

root@basickarl:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@basickarl:~# docker ps -a
CONTAINER ID        IMAGE                              COMMAND             CREATED             STATUS                           PORTS               NAMES
e4ac54468455        basickarl/docker-git-test:latest   "/bin/bash"         7 minutes ago       Exited (0) 26 seconds ago                            adoring_lumiere     
22d7c5d83871        basickarl/docker-git-test:latest   "/bin/bash"         2 hours ago         Exited (127) About an hour ago                       thirsty_wright      
root@basickarl:~# docker attach --sig-proxy=false e4
FATA[0000] You cannot attach to a stopped container, start it first 
root@basickarl:~# docker start e4
e4
root@basickarl:~# docker attach --sig-proxy=false e4
FATA[0000] You cannot attach to a stopped container, start it first 
root@basickarl:~#

真的没有太多要说的,我希望容器能启动并保持正常运行。这是日志:

root@basickarl:~# docker logs e4
root@basickarl:~#

问题答案:

您正在尝试运行bash,它是需要tty
才能运行的交互式外壳。使用,在“分离”模式下运行此命令实际上没有任何意义-d,但是您可以通过添加-it到命令行来做到这一点,以确保容器具有与其关联的有效tty并stdin保持连接状态:

docker run -it -d -p 52022:22 basickarl/docker-git-test

在启动分离的容器时sshd,您通常会运行某种长期存在的非交互式进程(例如,或Web服务器,数据库服务器或进程管理器systemdsupervisor)。

如果您试图运行类似的服务sshd,则不能简单地运行service ssh start。这将-根据您在容器内运行的发行版-执行以下两项操作之一:

  • 它将尝试与流程经理联系,例如systemdupstart启动服务。因为没有运行服务管理器,所以这将失败。

  • 它实际上将启动sshd,但是将在后台启动。这意味着(a)service sshd start命令退出,这意味着(b)Docker认为您的容器发生了故障,因此它清理了所有内容。

如果你想运行 只是 在一个容器SSH,考虑类似的例子这样。

如果要在容器中运行sshd 其他进程 ,则需要调查某种进程管理器。



 类似资料:
  • 我一直试图在我的docker容器中运行cron作业,但当容器启动时,我似乎无法让cron服务运行。我可以远程进入运行容器并运行“cron”以使服务在没有问题的情况下启动。我在我的DockerFile中包含了这个,为什么命令没有被执行呢? Docker-compose.yml

  • 我想做的是,在运行compose up之后,在我的web本地主机中看到一个简单的html文件。但我在localhost的8080 8000 8009端口中看不到任何东西。 当我将yml更改为 上面写着 caner@vegan:~/ideaprojects/combabety$pwd/home/caner/ideaprojects/combabety$ls docker-compose.yml ht

  • 问题内容: 我想在Centos7的Docker容器中运行Jenkins。我看到了Jenkins的官方文档:首先,从Docker存储库中提取官方的jenkins映像。 接下来,使用该映像运行一个容器,并将数据目录从该容器映射到主机;例如,在下面的示例中,容器中的/ var / jenkins_home从主机上的当前路径映射到jenkins /目录。Jenkins 8080端口也以49001的身份向主

  • 本文向大家介绍Docker如何进入启动容器,包括了Docker如何进入启动容器的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Docker如何进入启动容器,分享给大家,具体如下: 在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。 这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。 1、at

  • 问题内容: 要为Ubuntu映像启动交互式shell,我们可以运行: 但是,对于Alpine Docker映像运行此命令时,将得到以下结果: 在Alpine基本容器中启动交互式Shell的命令是什么? 问题答案: 上面使用的选项: 是BusyBox提供的Ash(Almquist Shell)。 退出时自动移除容器() 交互模式(即使未连接也保持STDIN打开) 分配伪TTY