容器是經過 image 建立的進程。程序員
鏡像(Image)和容器(Container)的關係,就像是面向對象程序設計中的 類 和 實例 同樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器能夠被建立、啓動、中止、刪除、暫停等。
下面的命令的含義:經過 Ubuntu:18.04 這個 image 建立一個容器並運行 /bin/echo 'Hello world',完成後中止該容器。docker
$ docker run ubuntu:18.04 /bin/echo 'Hello world' Hello world
使用 docker run 命令,後臺實際上執行的內容爲:ubuntu
上面的示例執行完之後會終止,可是通常咱們在使用一個提供服務的容器的時候,不想讓它中止,那麼可使用 -d 參數,使容器保持在後臺運行。可是須要注意——容器是否會長久運行,是和 docker run 指定的命令有關,和 -d 參數無關bash
以下命令執行完後,容器依然會中止spa
$ docker run -d ubuntu
而以下命令執行完後,容器則在後臺保持運行設計
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
$ docker run -dit ubuntu ffff9516c6151ef3b436df1bccc70ba9da2d0f57bbec5afe19353fe481e12702 $ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ffff9516c615 ubuntu "/bin/bash" 7 seconds ago Up 6 seconds elegant_hypatia $ docker attach ffff9516c615 root@ffff9516c615:/#
注意: 若是從這個 stdin 中 exit,會致使容器的中止。rest
$ docker run -dit ubuntu 15fc4d97c1b4ea25d76e568fb4e695d5b48d7f13ebbb6d718a80b86a4764a005 // 只用 -i 參數時,因爲沒有分配僞終端,界面沒有咱們熟悉的 Linux 命令提示符,但命令執行結果仍然能夠返回。 $ docker exec -i 15fc4d97c1b4ea25 bash ls bin boot dev etc ... //當 -i -t 參數一塊兒使用時,則能夠看到咱們熟悉的 Linux 命令提示符。 $ docker exec -it 15fc4d97c1b4ea25 bash root@15fc4d97c1b4:/#
注意:若是從這個 stdin 中 exit,不會致使容器的中止。code