Docker 容器和映像檔介紹

當想要執行一個docker容器,會執行docker run image-name。這個指令會先從本地尋找是否有這個容器的Image(想像Image就是容器的snapshot),如果沒有就會去repository看有沒有對應的image名稱可以pull下來。

docker image可以從Docker Hub找到。例子:如果今天要下載一個mongo的docker,先去這裏找到有關mongo容器的相關資訊,並輸入下列指令:

單純下載mongo docker image

docker pull mongo

下載並執行一個新的mongo container

docker run mongo

當執行了docker run mongo指令,可以下docker ps列出所有正在執行的container。而如果要列出所有container,則要改下docker ps -a。自己對docker container和image用Java的解度去看的話,image就像Java裏的Class,而container像Java裏的物件。用docker ps列出來的是containers,要列出images則是要下docker images。同樣的,如果要刪除一個container,下的指令是docker rm; 而刪的如果是image則要改下docker rmi

上述說當要執行一個新的容器是執行docker run的指令,但如果只是對一個存在的容器去開關的話,則是用docker stop/start的指令。

最後要介紹的是容器的名稱。每個容器都會有一個長得像hash的唯一容器ID以及一個人類可閱讀的名字。當在執行run一個新的容器,如果沒有特別下–name這個參數的話,預設docker會隨機幫你的這個新容器取一個獨特的名稱。所以與其如記住一個長得像aedd65dee4a3這樣的hash id,my-mongo的名稱或許會更人性化一點,而在開關容器時也可以直接用容器名稱,如docker start my-mongo。用Java角度,把他想像每個物件都會有自己的hash code,和一個在stack裏的變數名稱指像這個物件,這樣想或許可以幫助記憶。除了-name參數以外,還有另一個參數–hostname也是自己一開始也搞混的。這個名稱是拿來給container DNS使用的。有關這兩個名稱的差異,也可以參考這裡的說明。

以上,就可以開始試試熟悉如何下載、執行、開始、關閉、刪除一個docker container/image。docker有很多指令, 除了可以多用–help直接從找尋幫助外,也可以多多利用網上的資源如這個CheatSheet來幫助自己上手。

 

 

 

 

Leave a Reply

當第一個留言者!

avatar
wpDiscuz