1. Docker镜像的概念
2. 从Docker Hub获取镜像
3. 列出镜像
4. 删除镜像
5. 打标签(创建副本)
6. 镜像打包tar和从tar包导入
7. 搜索镜像
8. 查看镜像
1. Docker镜像的概念
Docker镜像是Docker容器运行的基础,是一个轻量级、可执行的文件,它是构建容器的模板,在Docker中扮演着重要的角色,每一个镜像包含一套预先配置好的文件系统和运行环境。
每一个镜像由多层文件系统组成,每一层有一个唯一的id,id为每一个层计算一个SHA256校验和,镜像本身是只读的,当有安装软件、更新配置的新操作,Docker会基于该容器创建一个可读写。
特点:
- 分层结构,采用层叠方式构建镜像文件,新操作和变更会生成新层,每一个层有唯一id,在本地只会存储一份,有利于资源重复利用,提高存储效率,缓解磁盘存储上的压力。
- 便携,镜像文件可以在任何安装了Docker的环境运行,因为其中包含了运行应用所需的所有依赖和配置等。
- 标签化管理,Docker镜像通过标签可以进行版本控制,例如:redis:latest、redis:bookworm等,方便识别和选择不同的镜像构建我们自己的镜像。
2. 从Docker Hub获取镜像
Docker Hub是一个公共的镜像仓库,可以在其中找到各种各样的镜像,包括官方镜像、社区镜像、用户上传的自定义镜像等。可以使用docker pull
命令从Docker获取镜像。
获取镜像:通过在终端中运行docker pull
命令,指定镜像名称和标签,即可从Docker Hub获取指定镜像。
例如:使用docker pull ubuntu
将会获取ubuntu最新版本的镜像,拉取镜像时,如没有指定标签,默认会拉取标签为latest的镜像,如下为执行docker pull ubuntu
结果信息。
也可以从非官方仓库下载,需要在要拉取的镜像名称前指定完整的仓库地址,例如从阿里云容器镜像服务下载ubuntu:jammy镜像,这个时候需要指定完整仓库地址,
registry.cn-beijing.aliyuncs.com/hello/ubuntu:jammy
拉取镜像镜像命填写规则:
[Registry 仓库地址]/[NamesSpace 命名空间]/[Image Name 名称]/[Tag 标签]
- Registry:是可选的,默认会从Docker Hub拉取。
- NamesSpace:官方镜像时不需要填写,如自己上传的镜像,需要指定。
- Image Name:必须指定。
- Tag:如果不指定,默认为latest
以下是为官方镜像库拉取redis:bookworm
镜像的信息。
8a1e25ce7c4f、954e4e27d2f0、db33f581d00e...,这些每一行开头的值即每一层的id。每一层本地只会存储一份,可以有效的缓解磁盘存储压力。
3. 列出镜像
查看本机一共有哪些镜像文件。
使用命令docker images
或docker image ls
,如下
过滤特定名称 比如ubuntu可以,使用docker images ubuntu:jammy
或docker image ls ubuntu:jammy
4. 删除镜像
删除掉已经不再使用的镜像。
使用命令docker rmi [image name:tag]
,tag省略为删除tag为latest的镜像文件。
5. 打标签(创建副本)
如推送,需要打包为合适的名称,这个时候可以重新打一个标签,使其符合要求。
使用命令docker tag [old image name:old tag] [new image name;new tag]
docker tag ubuntu:jammy ubuntu:hello
创建了一个用ubuntu:jammy镜像,创建了一个新的镜像,标签为ubuntu:hello
6. 镜像打包tar和从tar包导入
有时候由于网络原因无法拉取镜像或备份镜像,可以找一台网络ok的主机进行镜像拉取操作,保存为tar包,通过离线复制到网络不佳的主机,进行导入。
使用命令docker save -o [文件名称] [镜像名称:标签]
此时使用ls
命令可以看到生成的hello.tar
文件,您可以将其复制到另一台已安装Docker的主机上并导入镜像:
使用命令从tar文件中导入镜像:
执行后,输出信息将显示已成功加载的镜像名称和标签。通过运行docker images
命令,可以验证导入的镜像ID是否与之前导出的一致。
这样,您就能高效地管理和迁移Docker镜像,在不同环境中快速部署稳定一致的应用程序环境,并便于与他人共享镜像资源。
7. 检索镜像
可以用过Docker Hub网页,在线输入关键字进行检索,同时也可以通过终端,使用命令的形式进行检索。
通过Docker Hub检索
dockerhub1.png dockerhub2.png通过终端检索,使用命令docker search [镜像名称]
。会显示与debian相关的镜像。
8. 查看镜像
docker inspect
用于获取Docker对象(如容器、镜像、网络、卷等)的详细信息。当你想要查看某个Docker镜像或容器的详细配置、元数据以及底层的JSON表示时,这个命令非常有用。
通过这些基本操作,大家可以高效地管理Docker镜像,搭建稳定、一致的应用环境,并方便的与他人协作分享。
忍不住要加个关注!不是我吹,但你会后悔没关注的!
网友评论