Docker 映象倉庫
這節介紹映象倉庫的使用。目前 Docker 官方維護了一個公共倉庫 Docker Hub,大部分需求都可以通過在 Docker Hub 中直接下載映象來實現:
1. 登入登出
如果沒有賬號,我們需要在 Docker Hub 上免費註冊一個 Docker 賬號。儲存好賬號密碼,進入 Linux 環境,輸入:
docker login
然後輸入賬號密碼登入。
使用 docker logout
可以登出賬號。
2. 搜尋映象
我們可以用 docker search
這個命令搜尋 Docker Hub 中的映象。
比如我們搜尋一下redis的映象
docker search redis
可以看到返回了很多包含 redis
映象名字、描述、star關注數、是否官方建立、是否自動建立。
根據是否是官方提供,可將映象資源分為兩類:
-
一種是類似 centos 這樣的映象,被稱為基礎映象或根映象。這些基礎映象由 Docker 公司建立、驗證、支援、提供。這樣的映象往往使用單個單詞作為名字;
-
還有一種型別,比如 bitnami/redis映象,它是由 Docker 的使用者bitnami建立並維護的,因此帶有使用者名稱稱字首。可以通過字首 username/ 來指定使用某個使用者提供的映象。
通常我們更青睞官方構建的映象。
3. 下載映象
我們演示一下如何下載 redis 映象:
docker pull redis
預設會拉取 latest 版本,如果要指定版本,需要在映象後標記版本,如 dockre pull redis:3.2
執行這個命令docker pull redis
後,Docker 就會開始從映象倉庫中拉取我們所指定的映象了。
如上圖所示,redis 的映象已經被下載成功了。
在控制檯中,我們可以看到映象拉取的進度。 下載進度會分為幾行,每一行代表的就是一個映象層。 Docker 首先會拉取映象所基於的所有映象層,之後再單獨拉取每一個映象層並組合成這個映象。如果在本地已經存在相同的映象層,那麼 Docker 就直接略過這個映象層的拉取而直接採用本地的內容。
映象在被拉取之後就存放到了本地,接受 Docker 管理,我們可以通過 docker images
命令看到它們。
4. 刪除映象
刪除映象的命令是 docker image rm
,引數是映象的名稱或 ID
使用命令docker image rm redis:latest
可以刪除剛才拉取的 redis 映象,同時Docker 會自動刪掉無用、沒有依賴的映象層。
5. 小結
由於容器映象的操作是增量式的,這樣每次映象拉取的內容,比原本多個完整的作業系統的小很多。這樣就使得基於容器映象的團隊協作更加便捷。更重要的是,一旦這個映象被髮布,那麼你可以任意獲取這個映象,可以完全復現這個映象的完整環境。