Docker 镜像相关命令介绍与示例
Docker 镜像是容器的基础,包含了运行应用所需的所有文件和依赖。以下是常用的 Docker 镜像命令及其示例:
1. 查看镜像列表
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. 拉取镜像
docker pull [选项] <镜像名>[:标签]
示例:
docker pull ubuntu:20.04
docker pull nginx:alpine
3. 搜索镜像
docker search [选项] <关键词>
示例:
docker search mysql
docker search --limit 5 redis
4. 删除镜像
docker rmi [选项] <镜像名或ID>
示例:
docker rmi ubuntu:20.04
docker rmi 1d622ef86b13
选项:
-f
:强制删除
5. 查看镜像详情
docker inspect <镜像名或ID>
示例:
docker inspect nginx
6. 构建镜像
docker build [选项] <上下文路径>
示例:
docker build -t myapp:v1 .
docker build -f Dockerfile.dev -t myapp:dev .
7. 给镜像打标签
docker tag <源镜像> <新镜像名>:<标签>
示例:
docker tag nginx:alpine myregistry.com/nginx:prod
8. 保存镜像为文件
docker save -o <文件名>.tar <镜像名>
示例:
docker save -o nginx.tar nginx:alpine
9. 从文件加载镜像
docker load -i <文件名>.tar
示例:
docker load -i nginx.tar
10. 查看镜像历史
docker history <镜像名>
示例:
docker history ubuntu:20.04
11. 清理无用镜像
docker image prune [选项]
示例:
docker image prune -a # 删除所有未被容器使用的镜像
docker image prune -a --filter "until=24h" # 删除24小时前创建的无用镜像
12. 导出和导入镜像
# 导出
docker export <容器ID> > container.tar# 导入
docker import container.tar new-image-name:tag
实际使用示例
- 拉取并运行一个Nginx容器:
docker pull nginx:alpine
docker run -d -p 8080:80 --name my-nginx nginx:alpine
- 构建自定义镜像:
# 假设当前目录有Dockerfile
docker build -t my-webapp:v1 .
docker run -p 5000:5000 my-webapp:v1
- 备份和恢复镜像:
docker save -o backup.tar nginx:alpine ubuntu:20.04
docker load -i backup.tar
- 清理空间:
# 删除所有未被使用的镜像
docker image prune -a