Docker镜像的概念和使用

字节码在跳舞 2024-04-10 17:12:09

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 [文件名称] [镜像名称:标签]

docker save alpine:3.19.1 -o hello.tar

此时使用ls命令可以看到生成的hello.tar文件,您可以将其复制到另一台已安装Docker的主机上并导入镜像:

使用命令从tar文件中导入镜像:

执行后,输出信息将显示已成功加载的镜像名称和标签。通过运行docker images命令,可以验证导入的镜像ID是否与之前导出的一致。

7. 搜索镜像

可以用过Docker Hub网页,在线输入关键字进行搜索,同时也可以通过终端,使用命令的形式进行搜索。

通过Docker Hub搜索

通过终端搜索,使用命令docker search [镜像名称]。会显示与debian相关的镜像。

8. 查看镜像

docker inspect 用于获取Docker对象(如容器、镜像、网络、卷等)的详细信息。当你想要查看某个Docker镜像或容器的详细配置、元数据以及底层的JSON表示时,这个命令非常有用。

通过这些基本操作,大家可以高效地管理Docker镜像,搭建稳定、一致的应用环境,并方便的与他人协作分享。

忍不住要加个关注!不是我吹,但你会后悔没关注的!

0 阅读:2

字节码在跳舞

简介:分享学习笔记、知识。