本文首發於微信公眾號:Hunter後端
原文連結:Docker筆記一之映象
從這一篇開始將介紹一些 Docker 的使用筆記,都是自己在使用過程中用到的一些筆記的積累。
首先我們來簡單理解一下 Docker 的作用,我們可以將其理解成一個個的小型的 Linux 系統。
以我們的 Django 系統為例,需要執行 Django、MySQL、Redis、Nginx 等,我們可以把它們都放到各自的 Docker 容器中,然後透過 yaml 檔案分別啟動起來。
這樣操作有一個好處,就是便於移植,也就是說在我的電腦上可以執行的系統,打包好後,放到別人的電腦上,只要也裝有 Docker,也可以同樣的執行,這樣就不用額外的去安裝和配置複雜的依賴關係。
這一篇筆記將介紹 Docker 的映象
以下是本篇筆記目錄:
- 映象的拉取
- 映象的基本命令
1、映象的拉取
在前面我們介紹了,Docker 是一個小型的 Linux 系統,它包含了一個 Linux 系統執行所需的最基礎的軟體和相關依賴。
而我們的映象從哪裡來呢,從 Docker 倉庫。
拉取命令
我們如何拉取呢,假設我們想要拉取一個 Ubuntu 映象,命令則會是:
docker pull ubuntu
很簡單對不對,然後 Docker 就會將 Docker 倉庫裡最近的一個 Ubuntu 版本拉取到本地。
如果我們想指定版本呢,我們想拉取 Ubuntu 18.04,或者 16.04 怎麼辦,加一個 : 和一個版本號即可:
docker pull ubuntu:18.04
docker pull ubuntu:16.04
如果我們想拉取一個 Python 的映象呢,同樣的操作:
docker pull python:3.6
系統就會拉取一個 Linux 系統,這個系統裡除了最簡約版的 Linux,還會自帶一個 Python 3.6 版本。
對於我們拉取下來的映象如何檢視呢,以下是命令:
docker images
然後就可以看到輸出有五欄資料,REPOSITORY、TAG、IMAGE ID、CREATED、SIZE
- REPOSITORY 是映象的名稱,比如前面拉取的 ubuntu,python
- TAG 是映象的標籤,比如沒有指定版本的 latest,或者指定版本的 18.04,3.6
- IMAGE ID 是每一個映象的唯一 id,在後面使用映象的時候,可以透過 image id 來定位
- CREATED 表示建立時間
- SIZE 表示映象大小
對於映象的大小,如果我們刪除了某個映象,會發現系統並沒有減少這麼多的儲存空間,這是因為每一個映象都是由很多層
構成的,這個層是可以在多個映象之間複用的。
當我們刪除某個映象,僅僅是刪除了該映象沒有被複用的層,被複用的層仍然會存在於系統中被其他映象所使用
2、映象的基本命令
接下來我們介紹一下關於映象的基本命令
拉取指定映象
透過冒號 : 來指定:
docker pull ubuntu:18.04
檢視映象
docker images
docker image ls
上面這兩條命令是一樣的效果
檢視映象相關資訊
docker inspect ubuntu:latest
檢視映象的摘要資訊
docker image ls --digests ubuntu
透過 IMAGE ID 刪除映象
docker rmi ed21b7a8aee9
docker image rm ed21b7a8aee9
其中 ed21b7a8aee9 為指定需要刪除的映象 id
上面兩條命令是一樣的效果
在後面如果多次使用映象,然後系統就會存在映象的名稱和 Tag 都會為 none 的廢棄映象,如果我們想統一刪除這些映象,可以透過如下命令:
docker rmi `docker images -a|grep none | awk '{print $3}'`
在引用符號裡的命令解釋一下
docker images -a 獲取所有映象
grep none 過濾獲取關鍵字有 none 的資料
awk '{print $3}' 獲取輸出的第三列資料,在這裡就是 image 的映象 id
docker rmi 就是刪除映象命令,將後面的操作獲取的映象 ID 刪除
如果想獲取更多後端相關文章,可掃碼關注閱讀: