1. 我们先来了解一下docker指令中 -i -t -d的区别
-d
是--detach
的简写,它的作用是在后台运行容器,并且打印容器id-t
是--tty
的简写,它的作用是分配一个伪TTY-i
是--interactive
的简写,它的作用是即使没有attached,也要保持 STDIN 打开状态
--interactive , -i Keep STDIN open even if not attached
--tty , -t Allocate a pseudo-TTY
--detach , -d Run container in background and print container ID
2. docker-java
是一个用于与 Docker 守护进程交互的 Java 客户端库。在你提供的代码中,withAttachStdin
, withTty
, 和 withDetach
是 CreateContainerCmd
和 StartContainerCmd
的一些方法,它们用于配置容器的创建和启动参数。
-
withAttachStdin:
- 当设置为
true
时,它允许从容器中附加标准输入流。这意味着你可以与容器进行交互,例如在容器内部运行 shell。
- 当设置为
-
withTty:
- 当设置为
true
时,它为容器分配一个伪终端 (pseudo-TTY)。这通常用于提供交互式会话,例如运行 shell。
- 当设置为
-
withDetach:
- 当设置为
false
时,容器将在后台运行并输出到标准输出。默认情况下,它可能是true
(这取决于库的实现),这意味着容器将在后台运行并且不输出任何内容。设置为false
可以让你看到容器的输出。
- 当设置为
注意:这些方法的具体行为可能因库的版本和 Docker 守护进程的版本而有所不同。因此,建议查阅官方文档或源代码以获取更准确的信息。