Docker 镜像是 Docker 生态系统的最重要的概念。本文将介绍它们的基本概念、操作和使用方法,希望可以帮助小伙伴们更好地理解和应用 Docker 技术。在此之前我们先了解一下Docker架构,可以帮助我们更好的理解Docker镜像操作
1.Docker架构
我们昨天已经安装了Docker,因此今天才可以操作Docker镜像。
Docker是一个C/S架构,由两部分组成:
- Server(服务端):Docker 服务器是运行在宿主机上的守护进程,负责管理和执行容器,还与内核交互,控制宿主机资源的分配和隔离,以确保容器的安全性和性能。
- Client(客户端): 用户可以使用 Docker 客户端发送命令请求给服务器,例如创建、启动、停止、删除容器等操作。Docker 客户端可以在任何支持 Docker 的系统上运行,包括 Windows、macOS 和 Linux。
2.Docker镜像操作
Docker 镜像是一种轻量级、可移植的软件包,包含了运行应用程序所需的所有文件、配置和依赖项(即将应用程序及其依赖、环境、配置打包在一起) 。它类似于虚拟机中的镜像,但比虚拟机镜像更加轻量、易于管理和部署。
2.1. 镜像名称
要操作Docker镜像,首先要知道Docker镜像名称的组成,包含两部分:
- 镜像仓库名称(Repository Name):镜像仓库名称用于标识镜像所存储的位置或来源
- 镜像标签(Tag): 通常,latest 被用作默认标签表示最新版本的镜像,在没有指定tag时,默认是latest,代表最新版本的镜像。
格式如下:
# 镜像仓库名称:镜像标签
nginx:1.25.2
这里的nginx就是repository,1.25.2就是tag,合一起就是镜像名称,代表1.25.2版本的nginx镜像。
2.2. 镜像操作
常见的镜像操作,如图所示:
- docker build:构建镜像
- docker images: 查看本地镜像信息
- docker rmi:删除镜像
- docker pull: 从镜像仓拉取镜像
- docker push: 将本地打包的应用镜像推送到镜像服务器
- docker save: 保存镜像为压缩包(一般网速不好时使用,找一个网速好的地方将镜像打包,然后再加载镜像进行使用)
- docker load:加载压缩包为镜像
思考:如何删除所有本地镜像
思考:如何保存所有镜像到磁盘
根据本文结构,文章最后会介绍这两个思考的实现。
2.2.1. 镜像拉取和查看操作
需求:从DockerHub中拉取一个nginx镜像并进行镜像操作
- 1.从镜像仓库搜索nginx镜像,比如DockerHub仓库: https://hub.docker.com/
- 2.根据镜像名称拉取镜像
格式:
docker pull Repository:Tag
拉取nginx镜像命令:
docker pull nginx # 不写tag,默认为latest,表示镜像的最新版本
- 3.查看本地镜像列表
docker images
- 4.查看本地镜像并查找符合条件镜像
docker images | grep nginx
如果您觉得本文不错,欢迎关注,点赞,收藏支持,您的关注是我坚持的动力!
springboot葵花宝典
主要分享JAVA技术,主要包含SpringBoot、SpingCloud、Docker、中间件等技术,以及Github开源项目
157篇原创内容
公众号
2.2.2 镜像保存和导入镜像
需求:利用docker save将nginx镜像导出磁盘,然后再通过load加载回来
- 1.利用docker xx --help命令查看docker save和docker load的语法
docker save --help
格式:
docker save -o [保存的目标文件名称] [镜像名称]
使用docker save导出nginx镜像到磁盘:
docker save -o nginx.tar nginx:latest
- 2.删除nginx镜像
# 删除镜像
docker rmi nginx:latest
# 查看本地镜像列表
docker images
- 3.docker load加载nginx镜像
# 加载nginx镜像
docker load -i nginx.tar
# 查看本地镜像列表
docker images
2.4 保存本地的所有镜像到磁盘
docker save -o all.tar $( docker images --format "{{.Repository}}\t{{.Tag}}" | awk '{print $1":"$2}')
2.5 删除所有镜像
删除所有镜像,也是使用的
docker rmi
命令
- 1.先查看一下所有本地镜像的id
docker images -q
- 2.删除本地所有镜像,强制删除
docker rmi -f $(docker images -q)
- 3.docker load加载所有镜像
docker load -i all.tar
标签:指南,load,nginx,镜像,Docker,save,docker
From: https://blog.51cto.com/maguobin/7743958