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檔案製作映象
這種方式將在下一篇文章中詳細介紹。