1. 程式人生 > 其它 >Docker入門實戰(二)——Docker映象操作

Docker入門實戰(二)——Docker映象操作

1. 什麼是Docker映象?

從原始碼層面來講,Docker映象是一個個只讀檔案系統,對於原始碼這裡不作深究。我們只從邏輯角度來看,Docker映象是一個個裝有特定軟體的“閹割版”作業系統。之所以稱其閹割版,那是因為映象並非完整的作業系統,它無法獨立執行,但在Docker提供的環境下執行起來後和普通作業系統完全一樣。

2. 什麼是映象倉庫?什麼是Registry?

顧名思義,映象倉庫就是用來存放映象的儲存空間。 一般而言,一個映象倉庫存放同一映象的不同版本。 那麼,用來存放映象倉庫的儲存空間就是Registry。 Docker提供了一個官方Registry——Docker Hub。只要我們註冊賬號,就能擁有自己的映象倉庫,並將自己的映象存入其中。 PS:Docker Hub的個人映象倉庫前會有加上使用者名稱,以防止映象倉庫重名,如:chaimm/nginx,chaimm為使用者名稱,nginx為映象倉庫名。 而Docker的官方映象倉庫前沒有使用者名稱,如:nginx。

3. Docker Hub簡介

從Docker Hub的名字即可看出,Docker與Github擁有一樣的理念:開源、共享、託管、版本控制。

3.1 開源與共享

在Docker Hub上託管的映象大多都是開源的。當然,和Github一樣,如果你想建立私有倉庫,那是要收費的。

3.2 映象託管

Github上託管的是程式碼,而Docker Hub上託管的是映象。兩者並無本質差別,映象託管一是方便自己防止映象丟失,二是方便他人實現資源共享,從而實現共產主義。

3.3 版本控制

Git可以給程式碼打上版本號,以實現版本控制,Docker Hub也是如此,它能夠為映象打上版本好,實現映象的版本控制。

4. 映象的基本操作

4.1 查詢映象

以下命令可以按關鍵詞查詢Docker Hub上的所有映象。

docker search 關鍵詞

如:查詢ubuntu映象:

NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                            Ubuntu is a Debian-based Linux operating s...   4525      [OK]       
ubuntu-upstart                    Upstart is an event-based replacement for ...   65        [OK]       
rastasheep/ubuntu-sshd            Dockerized SSH service, built on top of of...   32                   [OK]
torusware/speedus-ubuntu          Always updated official Ubuntu docker imag...   27                   [OK]
ubuntu-debootstrap                debootstrap --variant=minbase --components...   25        [OK]       
  • NAME:映象倉庫名
  • DESCRIPTION:描述資訊
  • STARS:和Github的Star一個道理
  • OFFICIAL:是否官方映象
  • AUTOMATED:是否由Docker Hub自動構建

4.2 拉取映象

以下命令可以從Docker Hub中下載一個映象倉庫中的所有映象:

docker pull 映象倉庫名

4.3 製作映象

在Docker中有兩種製作映象的方式,他們有各自的特點和應用場景。由於通過Dockerfile檔案製作映象的方式較為重要,我會在下一篇部落格詳細介紹,這裡只介紹較為簡單的docker commit方式。

4.3.1 通過docker commit製作映象

1.下載基礎映象 首先你需要擁有一個基礎映象。可以通過剛才介紹的方法從Docker Hub下載一個你喜歡的作業系統作為基礎映象。如:

docker pull ubuntu:latest

2.執行基礎映象 啟動基礎映象(啟動後的基礎映象其實就是容器),併為該容器起一個名字“ubuntu”:

run --name ubuntu -i -t ubuntu /bin/bash

3.安裝軟體 當容器啟動後,你便可進入容器,緊接著你可以在這個容器中安裝任何你需要的軟體。 PS:這個容器和一個普通的ubuntu系統沒有任何差別,你可以用Linux命令操作這個系統。

4.打包 這一步將當前容器打包成一個映象:

docker commit -m="這裡寫版本資訊" --author="這裡寫作者資訊" 當前容器的ID 映象倉庫名(你的使用者名稱/映象倉庫名)

5.將映象推送至Docker Hub

docker push 你的使用者名稱/映象倉庫名

4.3.2 通過Dockerfile檔案製作映象

這種方式將在下一篇文章中詳細介紹。