Docker容器未启动(Docker启动)
我使用以下命令创建了容器:
docker run -d -p 52022:22 basickarl/docker-git-test
以下是命令:
root@basickarl:~# docker psCONTAINER 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 e4root@basickarl:~#
回答:
您正在尝试运行bash
,它是需要tty
才能运行的交互式外壳。使用,在“分离”模式下运行此命令实际上没有任何意义-d
,但是您可以通过添加-it
到命令行来做到这一点,以确保容器具有与其关联的有效tty并stdin
保持连接状态:
docker run -it -d -p 52022:22 basickarl/docker-git-test
在启动分离的容器时sshd
,您通常会运行某种长期存在的非交互式进程(例如,或Web服务器,数据库服务器或进程管理器systemd
或supervisor
)。
如果您试图运行类似的服务sshd
,则不能简单地运行service ssh start
。这将-根据您在容器内运行的发行版-执行以下两项操作之一:
它将尝试与流程经理联系,例如
systemd
或upstart
启动服务。因为没有运行服务管理器,所以这将失败。它实际上将启动
sshd
,但是将在后台启动。这意味着(a)service sshd start
命令退出,这意味着(b)Docker认为您的容器发生了故障,因此它清理了所有内容。
如果你想运行 只是 在一个容器SSH,考虑类似的例子这样。
如果要在容器中运行sshd
其他进程 ,则需要调查某种进程管理器。
以上是 Docker容器未启动(Docker启动) 的全部内容, 来源链接: utcz.com/qa/435631.html