不带 -it 选项的 Docker 运行命令

Gré*_*ima 0 containers docker

为什么当我运行命令时

docker run ubuntu
Run Code Online (Sandbox Code Playgroud)

如果没有选项“-it”,即使使用 -a -i 选项运行命令启动,也无法与创建的容器交互

docker start -a -i CONTAINER_ID
Run Code Online (Sandbox Code Playgroud)

或者当我跑步时

docker start CONTAINER_ID
Run Code Online (Sandbox Code Playgroud)

只是容器的状态为“4 秒前退出 (0)”

但当我跑步时

docker run -it ubuntu
Run Code Online (Sandbox Code Playgroud)

我可以使用 'docker start -a -i' 来使用 ubuntu 的 bash shell

cod*_*nny 6

docker run当您在没有它的情况下运行时,-it它仍在运行容器,但您没有给它命令,因此它完成并退出。

如果你试试:

docker run ubuntu /bin/bash -c "echo 'hello'";
Run Code Online (Sandbox Code Playgroud)

它将运行 ubunu,然后运行命令,然后完成,因为之后没有理由让它保持活动状态。

-i是说保持它的活动状态并在终端中工作(允许它进行交互),但是如果您输入exit,则完成并且容器停止。

-t显示 docker 容器内的终端(请参阅:什么是伪终端(pty/tty)?

-it允许您在 docker 实例中查看终端并与其交互。

此外,您可以-d在后台运行它,然后再使用它。

前任:

docker run -it -d --name mydocker ubuntu;
docker exec -it mydocker /bin/bash;
Run Code Online (Sandbox Code Playgroud)