docker - 不带 -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
解决方案
当你在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;
推荐阅读
- c# - EF Core Identity Foreign Key throws 每个表中的列名必须是唯一的
- sql - 是否可以为 Acolyte ScalaCompositeHandler 参数化查询或参数?
- excel - 错误“1004”无法获取工作表函数类的 sum 属性
- sql - Oracle Sql Developer 导出缓慢
- javascript - tinymce 编辑器 - 加载编辑器后添加文本
- javascript - x-editable 我可以在 jquery 中添加一个按键事件来输入吗
- c++ - C ++:如何用单个命令替换复杂的迭代?
- android - 从列表中进行 n 次异步调用,并在所有调用完成后调用方法
- .net - 绑定重定向的框架配置在哪里?
- laravel-5 - 如何在 Laravel 中配置旧项目