栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

“ docker exec”命令的“

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

“ docker exec”命令的“

-i
--interactive
即使没有连接,也可以保持STDIN处于打开状态,如果您完全想键入任何命令,都需要打开。

-t
--tty
分配一个伪TTY,一个伪终端,它将用户的“终端”与stdin和stdout连接起来。(请参阅
container/container.go

如果执行回显,则仅

-t
需要。
但是对于在其中输入输入的交互式会话,则需要
-i

由于

-i
保持stdin处于打开状态,因此还可以使用它来将输入通过管道传递到分离的docker容器。即使使用
-d
(分离)也可以。

$ echo hello | docker run -i busybox cat  hello

-i
即使未连接STDIN也保持打开状态,在这种情况下STDOUT的状态是什么?

它是

docker exec
由设置的
docker run

但是,关于

dockerexec
,存在一个当前问题(问题8755:Docker
tty不是具有
docker exec

不幸的是,您的发现仅相当于tty在centos6与ubuntu:14.04之间的行为差​​异。exec内仍然没有功能性tty-只需执行一下

ls -la/proc/self/fd/0
,看看它是指向a
pts
不存在的断开链接。

我们正在处理的实际错误是某些标准库假定/ proc / self / fds /中的符号链接必须是有效的符号链接。

问题在于,tty是在主机外部创建的,在容器中没有对它的引用,就像

/dev/console
在主容器中如何设置一样。
解决此问题的一种方法是分配并将绑定
devpts
从主机装入到容器中。

注意(2017年第四季度):该问题现在应该已修复(docker
17.06-ce)。
参见PR 33007。

该PR现在允许(自17.06起):

zacharys-pro:dev razic$ docker run --rm -t -d ubuntu bash83c292c8e2d13d1b1a8b34680f3fb95c2b2b3fef71d4ce2b6e12c954ae50965azacharys-pro:dev razic$ docker psConTAINER ID        IMAGE    COMMAND  CREATED  STATUS   PORTS    NAMES83c292c8e2d1        ubuntu   "bash"   2 seconds ago       Up 1 second       xenodochial_bardeenzacharys-pro:dev razic$ docker exec -ti xenodochial_bardeen tty/dev/pts/1

(在17.06之前,

tty
返回“
not a tty
”)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号