一、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.
最佳实践:
- 优先使用官方镜像,保证安全和可靠性。
- 配置镜像加速器(如阿里云)以提高拉取速度。
- 使用离线保存和加载功能,在无法访问外部网络时传递镜像。