docker集装箱不启动(docker启动)
我用下面的命令创build了容器:
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:~#
没什么可说的,我期待容器开始并保持upp。 这里是日志:
root@basickarl:~# docker logs e4 root@basickarl:~#
您正在尝试运行bash
,一个需要tty才能运行的交互式shell。 使用-d
在“分离”模式下运行并没有什么意义,但可以通过在命令行中添加-it
来确保容器有一个有效的tty,并且stdin
保持连接:
docker run -it -d -p 52022:22 basickarl/docker-git-test
在启动分离的容器时,更常用的方式是运行某种长寿命的非交互式进程(如sshd
,Web服务器或数据库服务器,或像systemd
或supervisor
这样的进程pipe理器)。
如果你想运行一个像sshd
这样的服务,你不能简单地运行service ssh start
。 这将取决于您在容器中运行的分布 – 执行以下两项操作之一:
-
它会尝试联系像
systemd
或upstart
这样的stream程pipe理员来启动服务。 由于没有服务pipe理器运行,这将失败。 -
它实际上会启动
sshd
,但会在后台启动。 这意味着(a)service sshd start
命令退出,这意味着(b)Docker认为你的容器失败了,所以它清理了一切。
如果你只想在一个容器中运行ssh,请考虑一个像这样的例子。
如果你想在容器中运行sshd
和其他进程 ,你需要调查某种进程pipe理器。
- 有没有办法停止泊坞窗容器中的命令
- Docker-Flink:在Docker Swarm的不同节点中,TaskManager无法findJobManager
- 为docker容器指定linux界面
- 尽早构build一个Docker容器,并为yum install安装不良的软件包列表
- 如何让Docker集线器为“最新”和“vX.Y”使用相同的映像?
- ElasticBeanstalk Docker主机networking模式
- 命令'/ bin / sh -c sudo pip3 install -r requirements.txt'返回一个非零的代码:1
- 每个节点一个docker容器或每个大节点有许多容器
- 为什么在Docker环境下运行时不能访问TomEE?