相关疑难解决方法(0)

我何时在Docker容器中使用`--interactive`而不使用`--tty`?

我做了一些谷歌搜索,没有运气找到一个我跑,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旗帜?

干杯

docker

29
推荐指数
1
解决办法
4389
查看次数

-i标志在docker中做了什么?

我只是读文章泊坞窗,它描述了如何dockerize一个简单的应用程序的文章.执行以下命令:

$ docker run -t -i ubuntu:14.04 /bin/bash, 
Run Code Online (Sandbox Code Playgroud)

然后,给出以下解释:

在这里,我们再次指定了docker run命令并启动了一个ubuntu:14.04图像.但是我们也传递了两个标志:-t和-i.-t标志在我们的新容器中分配一个伪tty或终端,-i标志允许我们通过获取容器的标准(STDIN)来建立交互式连接.

我不明白其含义:

-i flag allows us to make an interactive connection by grabbing the standard in (STDIN)
Run Code Online (Sandbox Code Playgroud)

谢谢.

docker

10
推荐指数
3
解决办法
2818
查看次数

"docker exec"命令的"-i"和"-t"选项的用途是什么?

说实话,我一直困惑docker exec -it …,docker exec -i …docker exec -t …,所以我决定做一个测试:

  1. docker exec -it …:

    # docker exec -it 115c89122e72 bash
    root@115c89122e72:/# ls
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    
    Run Code Online (Sandbox Code Playgroud)

    它正常工作.

  2. docker exec -i …:

    # docker exec -i 115c89122e72 bash
    ^C
    
    Run Code Online (Sandbox Code Playgroud)

    命令挂起,我必须使用Ctl+ c来中断它.

  3. docker exec -t …:

    # docker exec -t 115c89122e72 bash
    root@115c89122e72:/# ls
    ^C …
    Run Code Online (Sandbox Code Playgroud)

linux tty docker

8
推荐指数
1
解决办法
3262
查看次数

标签 统计

docker ×3

linux ×1

tty ×1