1. 程式人生 > >Docker實戰(二):容器使用和映象製作

Docker實戰(二):容器使用和映象製作

執行容器

安裝好之後,我們就可以來開始Docker之旅了,

我們現在的Docker還是一個”裸”Docker,上面沒有容器,等一下,什麼式容器?所謂容器就是Docker中用來執行應用的,Docker的容器很輕量級,但功能卻強悍的很。也沒有映象。映象?映象簡單理解就是容器的只讀版本,用來方便儲存與交流。此時,我們可以通過官方提供給我們的映象來進行學習。比如我們想在Docker中執行一個Ubuntu系統,很簡單,Docker中得pull命令是用來獲取映象的,執行下面的命令,就會從官方倉庫裡獲取Ubuntu 14.04版本的系統:

docker pull ubuntu:14.04

images命令用來檢視本機Docker中存在哪些映象,執行 docker images

就會看到我們剛才獲取的Ubuntu14.04系統:

這裡寫圖片描述

現在,我們把剛剛的映象執行起來,執行起來的映象就叫做容器了,容器是可讀寫的,這樣我們就可以在容器裡做很多有意思的事情了。run 命令就是將映象執行起來的,執行:

docker run -it ubuntu:14.04

仔細看,你會發現終端互動的使用者名稱變掉了,說明我們進入到了容器的內部,效果如下:

這裡寫圖片描述

現在我們所做的任何操作都是針對於目前容器而言的,不會影響到原來的系統,例如,我們在裡面安裝下nginx伺服器,執行如下命令:

sudo apt-get install -y nginx

完成後執行nginx -v就會發現我們已經將nginx安裝成功:

這裡寫圖片描述

將容器轉化為映象

在上一小節中,我們已經在容器裡安裝好了nginx,接下來我們希望將這個容器內容儲存下來,這樣我們下次就無需再次安裝了。這就是Docker中將容器轉換為映象的技術。

如果您還在剛剛的安裝了nginx的終端裡,執行exit退出此終端,回到系統本身的終端:

這裡寫圖片描述

ps命令可以檢視我們當前都運行了哪些容器,加上-a引數後就表示執行過哪些容器,因為我們剛剛已經退出了安裝nginx的容器,因此我現在想檢視它的話,需要使用-a引數,執行如下命令:

docker ps -a

此時,就會顯示出我們剛剛執行的容器,並且Docker會很貼心的隨機給每個容器都起個Names方便標示。效果如下:

這裡寫圖片描述

commit命令用來將容器轉化為映象,執行下面的命令,我們可以講剛剛的容器轉換為映象:

sudo docker commit -m “Added nginx from ubuntu14.04” -a “saymagic” 79c761f627f3 saymagic/ubuntu-nginx:v1

其中,-m引數用來來指定提交的說明資訊;-a可以指定使用者資訊的;79c761f627f3代表的時容器的id;saymagic/ubuntu-nginx:v1指定目標映象的使用者名稱、倉庫名和 tag 資訊。建立成功後會返回這個映象的 ID 資訊。注意的是,你一定要將saymagic改為你自己的使用者名稱。因為下文還會用到此使用者名稱。

這裡寫圖片描述

這是我們再次使用docker images命令就會發現此時多出了一個我們剛剛建立的映象:

這裡寫圖片描述

此時,如果執行docker run -it saymagic/ubuntu-nginx:v1就會是一個已經安裝了nginx的容器:

這裡寫圖片描述

儲存映象

我們剛剛已經建立了自己的第一個映象,儘管它很簡單,但這已經非常棒了,現在,我們希望它能夠被更多的人使用到,此時,我們就需要將這個映象上傳到映象倉庫,Docker的官方Docker Hub應該是目前最大的Docker映象中心,所以,我們就將我們的映象上傳到Docker Hub。

首先,我們需要成為Docker Hub的使用者,前往https://hub.docker.com/進行註冊。需要注意的是,為了方便下面的操作,你需要將你的使用者名稱設為和我剛剛在上文提到的自定義使用者名稱相同,例如我的剛剛將映象的名字命名為是saymagic/ubuntu-nginx:v2,所以我的使用者名稱為saymagic、註冊完成後記住使用者名稱、密碼、郵箱。

login預設是用來登陸Docker Hub的,因此,輸入如下命令來嘗試登陸Docker Hub:

docker login

此時,就會輸出互動,讓我們輸入Username、Password、Email,成功輸入我們剛才註冊的資訊後就會返回Login Success提示:

這裡寫圖片描述

執行命令:

docker push saymagic/ubuntu-nginx:v1

這就是我們為什麼將剛剛的映象命名為saymagic/ubuntu-nginx:v1的原因,如果你上面步驟都操作正確的正確的話,是會得到下面的內容:

這裡寫圖片描述

此時,不出意外的話,我們的映象已經被上傳到Docker Hub上面了,去Docker Hub上面看看:

這裡寫圖片描述

果然,我們在Docker Hub上有了我們的第一個映象,此時,其它的使用者就可以通過命令docker pull saymagic/ubuntu-nginx來直接獲取一個安裝了nginx的ubuntu系統了。不信?那就自己實踐一下吧!