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
相关推荐
努力买辣条6 小时前
基于 Docker 的高可用 WordPress 集群部署:分布式 Nginx + Keepalived、MySQL 主从复制与 ProxySQL 读写分离
分布式·nginx·docker
程序员 _孜然9 小时前
Ubuntu/Debian修改网卡名字enP3p49s0为eth0
linux·运维·驱动开发·嵌入式硬件·ubuntu·debian
IDIOT___IDIOT9 小时前
Linux mount 命令
linux·运维·服务器
暗流者9 小时前
AAA 服务器与 RADIUS 协议笔记
运维·服务器·笔记
锐策9 小时前
Git checkout 与 Git reset 核心区别解析(分支与版本关联逻辑)
运维·git
CTRA王大大10 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang
算力魔方AIPC14 小时前
如何用算力魔方4060安装PaddleOCR MCP 服务器
运维·服务器
Ray Song14 小时前
【Linux】 wget、curl 用法区别
linux·运维·服务器·curl·wget
@寄居蟹14 小时前
Docker 命令大全
docker·容器·eureka
小妖66615 小时前
本地文件夹即时变身 Web 服务器(文件服务器)
运维·服务器