💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 后台运行 更多的时候,需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 `-d` 参数来实现。 下面举两个例子来说明一下。 如果不使用 `-d` 参数运行容器。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker run ubuntu</span><span class="pun">:</span><span class="lit">17.10</span><span class="pln"> </span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">sh </span><span class="pun">-</span><span class="pln">c </span><span class="str">"while true; do echo hello world; sleep 1; done"</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> </ol> ``` 容器会把输出的结果 (STDOUT) 打印到宿主机上面 如果使用了 `-d` 参数运行容器。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker run </span><span class="pun">-</span><span class="pln">d ubuntu</span><span class="pun">:</span><span class="lit">17.10</span><span class="pln"> </span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">sh </span><span class="pun">-</span><span class="pln">c </span><span class="str">"while true; do echo hello world; sleep 1; done"</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a</span></code></li> </ol> ``` 此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 `docker logs` 查看)。 **注:** 容器是否会长久运行,是和 `docker run` 指定的命令有关,和 `-d` 参数无关。 使用 `-d` 参数启动后会返回一个唯一的 id,也可以通过 `docker container ls` 命令来查看容器信息。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker container ls</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="lit">77b2dc01fe0f</span><span class="pln"> ubuntu</span><span class="pun">:</span><span class="lit">17.10</span><span class="pln"> </span><span class="pun">/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">sh </span><span class="pun">-</span><span class="pln">c </span><span class="str">'while tr 2 minutes ago Up 1 minute agitated_wright</span></code></li> </ol> ``` 要获取容器的输出信息,可以通过 `docker container logs` 命令。 ``` <pre class="prettyprint"><ol class="linenums"><li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">$ docker container logs </span><span class="pun">[</span><span class="pln">container ID or NAMES</span><span class="pun">]</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> <li class="l1"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pln">hello world</span></code></li> <li class="l"><code class="pcalibre10 pcalibre11 pcalibre9"><span class="pun">.</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">.</span></code></li> </ol> ```