Docker 镜像相关命令介绍与示例

Docker 镜像是容器的基础,包含了运行应用所需的所有文件和依赖。以下是常用的 Docker 镜像命令及其示例:

1. 查看镜像列表

bash 复制代码
docker images

示例输出

复制代码
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        latest    1d622ef86b13   2 weeks ago    72.9MB
nginx         alpine    6efc2a5a0b54   3 weeks ago    23.5MB

选项

  • -a:显示所有镜像(包括中间层镜像)
  • --no-trunc:显示完整的镜像ID
  • -q:只显示镜像ID

2. 拉取镜像

bash 复制代码
docker pull [选项] <镜像名>[:标签]

示例

bash 复制代码
docker pull ubuntu:20.04
docker pull nginx:alpine

3. 搜索镜像

bash 复制代码
docker search [选项] <关键词>

示例

bash 复制代码
docker search mysql
docker search --limit 5 redis

4. 删除镜像

bash 复制代码
docker rmi [选项] <镜像名或ID>

示例

bash 复制代码
docker rmi ubuntu:20.04
docker rmi 1d622ef86b13

选项

  • -f:强制删除

5. 查看镜像详情

bash 复制代码
docker inspect <镜像名或ID>

示例

bash 复制代码
docker inspect nginx

6. 构建镜像

bash 复制代码
docker build [选项] <上下文路径>

示例

bash 复制代码
docker build -t myapp:v1 .
docker build -f Dockerfile.dev -t myapp:dev .

7. 给镜像打标签

bash 复制代码
docker tag <源镜像> <新镜像名>:<标签>

示例

bash 复制代码
docker tag nginx:alpine myregistry.com/nginx:prod

8. 保存镜像为文件

bash 复制代码
docker save -o <文件名>.tar <镜像名>

示例

bash 复制代码
docker save -o nginx.tar nginx:alpine

9. 从文件加载镜像

bash 复制代码
docker load -i <文件名>.tar

示例

bash 复制代码
docker load -i nginx.tar

10. 查看镜像历史

bash 复制代码
docker history <镜像名>

示例

bash 复制代码
docker history ubuntu:20.04

11. 清理无用镜像

bash 复制代码
docker image prune [选项]

示例

bash 复制代码
docker image prune -a  # 删除所有未被容器使用的镜像
docker image prune -a --filter "until=24h"  # 删除24小时前创建的无用镜像

12. 导出和导入镜像

bash 复制代码
# 导出
docker export <容器ID> > container.tar

# 导入
docker import container.tar new-image-name:tag

实际使用示例

  1. 拉取并运行一个Nginx容器
bash 复制代码
docker pull nginx:alpine
docker run -d -p 8080:80 --name my-nginx nginx:alpine
  1. 构建自定义镜像
bash 复制代码
# 假设当前目录有Dockerfile
docker build -t my-webapp:v1 .
docker run -p 5000:5000 my-webapp:v1
  1. 备份和恢复镜像
bash 复制代码
docker save -o backup.tar nginx:alpine ubuntu:20.04
docker load -i backup.tar
  1. 清理空间
bash 复制代码
# 删除所有未被使用的镜像
docker image prune -a
相关推荐
SPC的存折6 分钟前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Run_Teenage7 分钟前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
CDN36021 分钟前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议
freewlt26 分钟前
OpenClaw 工作流自动化实战:打造你的智能定时任务中心
运维·servlet·自动化
Amnesia0_029 分钟前
理解Linux中的OS管理和进程属性
linux·运维·服务器
http阿拉丁神猫29 分钟前
kubernetes知识点汇总43-47
云原生·容器·kubernetes
小夏子_riotous1 小时前
openstack的使用——7. 共享文件系统manila服务
linux·运维·服务器·系统架构·centos·openstack·运维开发
Omics Pro1 小时前
上海AI Lab+复旦大学:双轨协同实现自动化虚拟细胞建模
运维·人工智能·语言模型·自然语言处理·数据挖掘·数据分析·自动化
Bert.Cai1 小时前
Linux cp命令详解
linux·运维
七七powerful1 小时前
K8s 工具安装文档 — Harbor + ArgoCD
容器·kubernetes·argocd