後台(background)執行

更多的時候,需要讓 Docker在後台執行而不是直接把執行指令的結果輸出在目前宿主電腦下。此時,可以透過加入 -d 參數來實作。

下面舉兩個例子來說明一下。

如果不使用 -d 參數執行容器。

$ sudo docker run ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
hello world
hello world
hello world
hello world

容器會把輸出的結果(STDOUT)列印到宿主電腦上面

如果使用了 -d 參數執行容器。

$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a

此時容器會在後台執行並不會把輸出的結果(STDOUT)列印到宿主電腦上面(輸出結果可以用docker logs 檢視)。

註: 容器是否會長久執行,是和docker run指定的指令有關,和 -d 參數無關。

使用 -d 參數啟動後會傳回一個唯一的 id,也可以透過 docker ps 指令來 檢視容器資訊。

$ sudo docker ps
CONTAINER ID  IMAGE         COMMAND               CREATED        STATUS       PORTS NAMES
77b2dc01fe0f  ubuntu:14.04  /bin/sh -c 'while tr  2 minutes ago  Up 1 minute        agitated_wright

要取得容器的輸出資訊,可以透過 docker logs 指令。

$ sudo docker logs [container ID or NAMES]
hello world
hello world
hello world
. . .

results matching ""

    No results matching ""