一、Docker 鏡像基本操作
1. 查找鏡像
命令:
docker search <鏡像名稱>
示例:查找 CentOS 鏡像:
docker search centos
命令解釋:
- 默認從 Docker Hub 官方倉庫上搜索鏡像。
- 搜索結果包含多個列:
- NAME:鏡像名稱。
- DESCRIPTION:鏡像的描述信息。
- STARS:受歡迎程度(星標數量)。
- OFFICIAL:是否為官方鏡像(
OK
表示官方鏡像)。 - AUTOMATED:是否為自動構建的鏡像。
注意:
- 優先選擇官方鏡像(
OFFICIAL
列中標記為OK
),因為它們由官方團隊維護,更加安全可靠。 - 非官方鏡像可能存在安全隱患,例如后門、病毒等,需謹慎使用。
2. 拉取鏡像
命令:
docker pull <鏡像名稱>
示例:拉取最新版本的 CentOS 鏡像:
docker pull centos
命令解釋:
- 如果未指定版本標簽,默認使用
latest
標簽,拉取最新版本的鏡像。 - 可以通過指定版本標簽拉取特定版本的鏡像:
docker pull centos:7
輸出結果:
- 拉取時會顯示下載進度。
- 從官方倉庫拉取的鏡像路徑通常類似:
docker.io/library/centos:latest
docker.io
:Docker Hub 的域名。library
:官方鏡像庫的前綴。
優化:
如果拉取速度較慢,可以配置鏡像加速器(如阿里云、騰訊云等)。
3. 列出本地鏡像
命令:
docker images
輸出內容:
- REPOSITORY:鏡像所屬倉庫。
- TAG:鏡像的版本標簽。
- IMAGE ID:鏡像的唯一標識符。
- CREATED:鏡像創建的時間。
- SIZE:鏡像的大小。
4. 刪除鏡像
命令:
docker rmi <鏡像名稱或IMAGE ID>
示例:刪除 CentOS 的最新版本鏡像:
docker rmi centos:latest
強制刪除:
如果鏡像被容器引用,可以使用 -f
參數強制刪除:
docker rmi -f <鏡像名稱或IMAGE ID>
5. 保存鏡像為離線包
命令:
docker save -o <文件名.tar.gz> <鏡像名稱:標簽>
示例:將 CentOS 鏡像保存為壓縮包:
docker save -o centos.tar.gz centos:latest
作用:
可以將鏡像作為文件傳輸到其他機器,尤其適用于無法直接訪問 Docker Hub 的環境。
6. 加載離線鏡像
命令:
docker load -i <文件名.tar.gz>
示例:加載之前保存的 CentOS 鏡像:
docker load -i centos.tar.gz
注意:
不要使用傳統的解壓工具(如 tar
)解壓鏡像文件,因為這是 Docker 特殊封裝的格式。
7. 鏡像的安全性
- 優先選擇官方鏡像:
- 在
docker search
的結果中,確保OFFICIAL
列標記為OK
。
- 在
- 避免使用未知來源的鏡像:
- 非官方鏡像可能存在安全風險,比如植入木馬或惡意代碼。
- 使用官方鏡像作為基礎鏡像構建自己的服務。
二、鏡像操作的實際案例
案例一:拉取鏡像并查看本地鏡像
1.拉取 CentOS 最新版本鏡像:
docker pull centos
2.查看本地鏡像:
docker images
輸出結果類似:
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 5d0da3dc9764 7 months ago 209MB
案例二:保存鏡像并在其他主機加載
1.保存鏡像為壓縮包:
docker save -o centos.tar.gz centos:latest
2.將壓縮包傳輸到目標主機(通過 SCP、FTP 等方式)。
3.在目標主機加載鏡像:
docker load -i centos.tar.gz
4.查看加載的鏡像:
docker images
案例三:刪除鏡像
1.刪除 CentOS 鏡像:
docker rmi centos:latest
2.強制刪除被容器引用的鏡像:
docker rmi -f centos:latest
總結
1.鏡像操作的核心命令:
- 查找鏡像:
docker search
- 拉取鏡像:
docker pull
- 查看本地鏡像:
docker images
- 刪除鏡像:
docker rmi
- 保存鏡像為壓縮包:
docker save
- 加載鏡像:
docker load
2.
最佳實踐:
- 優先使用官方鏡像,保證安全和可靠性。
- 配置鏡像加速器(如阿里云)以提高拉取速度。
- 使用離線保存和加載功能,在無法訪問外部網絡時傳遞鏡像。