我键入了docker run ubuntu,现在是什么?

时间:2018-03-16 13:16:40

标签: docker

我知道,我知道,我应该输入

docker run -it ubuntu bash

但事实仍然是,一个容器已经被创建,它就在那里,它被停止了。它一旦启动就会停止,因此无法附加或执行它。

是不是真的没有办法改变它的状态以便bash启动呢?这对我来说似乎是一种表现。或许也有一些我没有得到的关于码头工人的奇妙可能性会让这样的事情变得复杂的事情?我怀疑。

为什么会这样?

2 个答案:

答案 0 :(得分:0)

请记住两件事:

  • 1st:只要主进程启动并运行,容器就会启动并运行。
  • 第二名:ubuntu有一个默认命令:CMD ["/bin/bash"]。使用docker run ubuntu bash时,会将其覆盖为CMD ["bash"]。没什么大不同。

为什么docker run ubuntu失败:

因为bash只是退出。请记住,bash是默认命令。

为什么docker run -it ubuntu成功:

因为-t使bash继续运行。来自docker run --help

-t, --tty                            Allocate a pseudo-TTY

另外,你提到:

  

但事实仍然是,已经创建了一个容器,它已存在,并且已停止。它一旦启动就会停止,因此无法附加或执行它。

容器可以更好地被视为流程,这就是为什么你应该将它们视为短暂的东西。如果run容器配置错误(在启动后立即退出),请将其删除并启动一个新的,这次使用正确的参数。

答案 1 :(得分:0)

当你像ubuntu一样运行图像时,你必须给它一个命令或进程来保持它的启动。在我的情况下,当我使用ubuntu图像进行测试时(主要是),我写了docker run --name myubuntu -d ubuntu:16.04 sleep 3000

您可以验证它是否以docker ps运行。

在此之后,您可以使用docker exec -it myubuntu /bin/bash

进入内部