1. 程式人生 > 實用技巧 >容器(四)一張圖搞懂容器所有操作【21】

容器(四)一張圖搞懂容器所有操作【21】

(五)一張圖搞懂容器所有操作

​ 前面我們已經討論了容器的各種操作,對容器的生命週期有了大致的理解,下面這張狀態機很好地總結了容器各種狀態之間是如何轉換的 。

如果掌握了前面的知識,要看懂這張圖應該不難。不過有兩點還是需要補充一下:

  1. 可以先建立容器,稍後再啟動。

    root@cuiyongchao:/dockerfile# docker create httpd
    751d726f3910d3c139f138c6456623160ccd148d47f82244118f418f829a22ef
    root@cuiyongchao:/dockerfile# docker start 751d726f3910d3c139f138c6456623160ccd148d47f82244118f418f829a22ef
    751d726f3910d3c139f138c6456623160ccd148d47f82244118f418f829a22ef
    root@cuiyongchao:/dockerfile# docker ps
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    751d726f3910        httpd               "httpd-foreground"       24 seconds ago      Up 7 seconds        80/tcp                   tender_kepler
    
    

    docker create建立的容器處於 Created 狀態。

    docker start將以後臺方式啟動容器。docker run命令實際上是docker createdocker start的組合。

  2. 只有當容器的啟動程序退出時,--restart才生效。

​ 退出包括正常退出或者非正常退出。這裡舉了兩個例子:啟動程序正常退出或發生 OOM,此時 docker 會根據--restart的策略判斷是否需要重啟容器。但如果容器是因為執行docker stopdocker kill退出,則不會自動重啟。