Docker 镜像操作笔记

一、简介

Docker 镜像是容器运行的基础,它包含了容器运行所需的文件系统、应用程序及其依赖。镜像是不可变的,每次修改都会生成一个新的镜像。以下是对 Docker 镜像操作的详细介绍,包括常用的命令及其参数解释。


二、镜像操作

(一)拉取镜像

1. 基本命令
复制代码
docker pull <镜像名>:<标签>
2. 参数解释
  • docker pull:从远程仓库拉取镜像。

  • <镜像名> :镜像的名称,例如 nginx、ubuntu。

  • <标签> :镜像的版本或变体,例如 latest、1.20、alpine。如果未指定标签,默认为 latest。

3. 示例
复制代码
docker pull nginx:latest

从 Docker Hub 拉取最新版本的 nginx 镜像。


(二)查看本地镜像

1. 基本命令
复制代码
docker images
2. 参数解释
  • docker images:列出本地所有镜像。

  • -a:显示所有镜像,包括中间层镜像。

  • --filter:根据条件过滤镜像,例如按标签、仓库等。

  • --format:自定义输出格式。

3. 示例
复制代码
docker images

输出示例:

复制代码
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    1234567890ab   1 week ago      133MB
ubuntu       20.04     0987654321cd   2 months ago    72MB

(三)删除镜像

1. 基本命令
复制代码
docker rmi <镜像ID或名称>:<标签>
2. 参数解释
  • docker rmi:删除本地镜像。

  • <镜像ID或名称>:镜像的唯一标识符或名称。

  • <标签>:镜像的标签。如果未指定标签,默认删除所有标签的镜像。

3. 示例
复制代码
docker rmi nginx:latest

删除本地的 nginx:latest 镜像。


(四)构建镜像

1. 基本命令
复制代码
docker build -t <镜像名>:<标签> <上下文路径>
2. 参数解释
  • docker build:从 Dockerfile 构建镜像。

  • -t:指定构建后的镜像名称和标签。

  • <镜像名>:<标签> :镜像名称和标签,例如 myapp:1.0。

  • <上下文路径>:Dockerfile 所在路径或上下文目录,默认为当前目录。

3. 示例
复制代码
docker build -t myapp:1.0 .

在当前目录下构建镜像,命名为 myapp,标签为 1.0。


(五)导出和加载镜像

1. 导出镜像
复制代码
docker save <镜像名>:<标签> > <文件名>.tar
2. 参数解释
  • docker save :将镜像导出为 .tar 文件。

  • <镜像名>:<标签>:指定要导出的镜像。

  • >:将输出重定向到文件。

3. 加载镜像
复制代码
docker load -i <文件名>.tar
4. 参数解释
  • docker load :从 .tar 文件加载镜像。

  • -i:指定输入文件路径。

5. 示例
复制代码
docker save nginx:latest > nginx.tar
docker load -i nginx.tar

(六)查看镜像历史

1. 基本命令
复制代码
docker history <镜像名>:<标签>
2. 参数解释
  • docker history:查看镜像的构建历史。

  • <镜像名>:<标签>:指定镜像。

3. 示例
复制代码
docker history nginx:latest

输出示例:

复制代码
IMAGE ID       CREATED         CREATED BY                                      SIZE
1234567890ab   1 week ago      /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon of... 0B
<missing>      1 week ago      /bin/sh -c #(nop) EXPOSE 80/tcp                 0B
<missing>      1 week ago      /bin/sh -c #(nop) ENTRYPOINT ["/docker-entryp... 0B
<missing>      1 week ago      /bin/sh -c #(nop) COPY file:abc123... in /      133MB

(七)镜像标签管理

1. 重新标记镜像
复制代码
docker tag <原镜像名>:<原标签> <新镜像名>:<新标签>
2. 参数解释
  • docker tag:为镜像重新标记。

  • <原镜像名>:<原标签>:原镜像的名称和标签。

  • <新镜像名>:<新标签>:新的镜像名称和标签。

3. 示例
复制代码
docker tag nginx:latest my-nginx:1.0

将 nginx:latest 重新标记为 my-nginx:1.0。


(八)推送镜像到远程仓库

1. 基本命令
复制代码
docker push <镜像名>:<标签>
2. 参数解释
  • docker push:将本地镜像推送到远程仓库(如 Docker Hub、私有仓库)。

  • <镜像名>:<标签> :镜像名称和标签。如果镜像属于私有仓库,需要包含仓库地址,例如 myregistry.com/myapp:1.0。

3. 示例
复制代码
docker push myapp:1.0

将本地的 myapp:1.0 镜像推送到 Docker Hub。


三、总结

Docker 镜像操作是 Docker 使用的核心内容之一。通过掌握以下命令,可以高效地管理镜像:

  • 拉取镜像 :docker pull

  • 查看本地镜像 :docker images

  • 删除镜像 :docker rmi

  • 构建镜像 :docker build

  • 导出和加载镜像 :docker save 和 docker load

  • 查看镜像历史 :docker history

  • 重新标记镜像 :docker tag

  • 推送镜像到远程仓库 :docker push

合理使用这些命令,可以帮助开发者和运维人员更好地管理镜像,确保应用的高效部署和维护。

相关推荐
雾时之林2 小时前
国内Docker 镜像加速器配置
云原生·eureka
方便面不加香菜4 小时前
Docker Volume -- 管理卷Volume详解
运维·docker·容器
江湖有缘5 小时前
Docker实战 | 使用Docker部署lemonitor镜像站点列表程序
运维·docker·容器
莫晓燚5 小时前
mall 电商项目完整部署---实战
linux·运维·docker·容器
瑞克-桑切斯1 天前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
瑞克-桑切斯1 天前
docker mail商城
运维·docker·容器
java_logo1 天前
Docker 部署 ReMe:轻松搭建 AI Agent 记忆管理平台
人工智能·docker·容器·ai agent·轩辕镜像·reme·agentscope-ai
不庸.1 天前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan
xbzb1 天前
Docker 架构与部署:一条 docker run 到底走了三层
docker·容器·架构·镜像·加速·daemon
java_logo2 天前
Docker 部署 Dify:轻松搭建 LLM 应用开发平台
运维·docker·容器