gpt4 book ai didi

docker - 什么时候在 Docker 容器中使用 `--interactive` 而没有 `--tty`?

转载 作者:IT老高 更新时间:2023-10-28 12:37:24 26 4
gpt4 key购买 nike

我进行了一些谷歌搜索,但没有找到运行 docker run -i some_image 而不是 docker run -it some_image 的案例。

如果我运行 docker run -i --name sample some_image bash,容器会在前台运行,但我无法从我所在的 shell 与它交互。我可以'甚至用 CTRL+C 停止它。但是,我可以打开另一个 shell 并运行 docker exec -it sample bash 并获得对容器的访问权限。

如果我运行 docker run -i -d --name sample some_image bash,容器会立即退出。我可以用 docker start sample 重新启动它,然后它会一直运行,所以我可以运行 docker exec -it sample bash 并再次与之交互。

但是,在所有这些情况下,我最终都使用 -it 与我的容器进行交互。在什么情况下我不需要 -t 标志?

干杯

最佳答案

由于 -i 即使没有附加 STDIN 也会保持打开状态,因此它允许组合(管道)。
例如:

docker run ubuntu printf "line1\nline2\n" | docker run -i ubuntu grep line2 | docker run -i ubuntu sed 's/line2/line3/g'

(来源:issue 14221)

或者:

$ echo hello | docker run -i busybox cat
hello

(来源:issue 12401)

Now imagine this not in front of a keyboard and being used in a script where you can actually write to the processes stdin through something better than a shell |: example integration-cli/docker_cli_attach_test.go

关于docker - 什么时候在 Docker 容器中使用 `--interactive` 而没有 `--tty`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35459652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com