我做了一些谷歌搜索,没有运气找到一个我跑,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旗帜?
干杯
Von*_*onC 31
由于-i即使没有附着也能保持STDIN打开,因此可以进行成分(配管).
例如:
docker run ubuntu printf "line1\nline2\n" | docker run -i ubuntu grep line2 | docker run -i ubuntu sed 's/line2/line3/g'
Run Code Online (Sandbox Code Playgroud)
(来源:issue 14221)
要么:
$ echo hello | docker run -i busybox cat
hello
Run Code Online (Sandbox Code Playgroud)
(来源:issue 12401)
现在想象一下,这不是在键盘前面,而是在脚本中使用,你可以通过比shell更好的东西写入进程stdin
|:integration-cli/docker_cli_attach_test.go
| 归档时间: |
|
| 查看次数: |
4389 次 |
| 最近记录: |