我使用以下命令创建了容器:
docker run -d -p 52022:22 basickarl/docker-git-test
Run Code Online (Sandbox Code Playgroud)
以下是命令:
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:~#
Run Code Online (Sandbox Code Playgroud)
没什么好说的,我期待容器启动并保持优势.这是日志:
root@basickarl:~# docker logs e4
root@basickarl:~#
Run Code Online (Sandbox Code Playgroud)
lar*_*sks 59
您正在尝试运行bash
,这是一个需要tty 才能运行的交互式shell.在"分离"模式下运行它并没有什么意义-d
,但是您可以通过添加-it
到命令行来执行此操作,这可以确保容器具有与之关联的有效tty并stdin
保持连接:
docker run -it -d -p 52022:22 basickarl/docker-git-test
Run Code Online (Sandbox Code Playgroud)
在启动分离的容器时sshd
,您通常会运行某种长期非交互式进程(如,或Web服务器,或数据库服务器,或类似systemd
或的进程管理器supervisor
).
如果您尝试运行类似的服务sshd
,则不能简单地运行service ssh start
.这将取决于您在容器内运行的分布 - 执行以下两项操作之一:
它将尝试联系流程管理器,systemd
或者upstart
启动服务.因为没有服务管理器在运行,所以这将失败.
它实际上会启动sshd
,但它将在后台启动.这意味着(a)service sshd start
命令退出,这意味着(b)Docker认为您的容器已经失败,因此它会清除所有内容.
如果你想运行只是在一个容器SSH,考虑类似的例子这样.
如果要在容器内运行sshd
和其他进程,则需要调查某种进程管理器.
归档时间: |
|
查看次数: |
121234 次 |
最近记录: |