首页 > 解决方案 > 不带 -it 选项的 Docker 运行命令

问题描述

为什么当我运行命令时

docker run ubuntu

没有选项 '-it' 不能与创建的容器交互,即使在运行命令以 -a -i 选项启动时也是如此

docker start -a -i CONTAINER_ID

或者当我跑步时

docker start CONTAINER_ID

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

但是当我跑步时

docker run -it ubuntu

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

标签: dockercontainers

解决方案


当你在docker run没有-it它的情况下运行时,容器仍在运行,但你没有给它一个命令,所以它完成并退出。

如果你试试:

docker run ubuntu /bin/bash -c "echo 'hello'";

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

-i是说让它保持活力并在终端中工作(允许它是交互式的),但如果你输入exit,你就完成了,容器停止。

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

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

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

前任:

docker run -it -d --name mydocker ubuntu;
docker exec -it mydocker /bin/bash;

推荐阅读