🎬慕斯主页:修仙—别有洞天
♈️今日夜电波:秒針を噛む—ずっと真夜中でいいのに。
0:34━━━━━━️💟──────── 4:20
🔄 ◀️ ⏸ ▶️ ☰
💗关注👍点赞🙌收藏您的每一次鼓励都是对我莫大的支持😍
目录
首先理解几个概念
Docker镜像仓库(Registry)是什么?
镜像仓库分类?
镜像仓库工作机制?
常用的镜像仓库命令
1. 登录镜像仓库
2. 登出镜像仓库
3. 拉取镜像
4. 推送镜像
5. 搜索镜像
注意事项
常见的镜像命令
1. docker images
2. docker image inspect
3. docker tag
常见容器命令
1. docker run
2. docker ps
镜像仓库 (Docker Registry) 负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。镜像仓库管理多个 Repository, Repository 通过命名来区分。每个 Repository 包含一个或多个镜像,镜像通过镜像名称和标签 (Tag)来区分。
镜像仓库(Registry):要从哪一个镜像仓库拉取镜像,通常通过 DNS 或 IP 地址来确定一个镜像仓库如 hub.docker.com;一个 Registry 中可以存在多个Repository·Repository 可分为“顶层仓库”和“用户仓库”;·用户仓库名称格式为“用户名/仓库名”·每个仓库可以包含多个 Tag(标签),每个标签对应一个镜像
Repository: ·由某特定的 docker 镜像的所有迭代版本组成的镜像仓库
镜像名称(name) +标签(tag):如 nginx:latest
认证能力:提供用户注册,登录、登出能力
索引:提供镜像的索引信息,方便检索
一个容器镜像包含了两个部分,一个是元数据,其实就是由 dockerfile 构建出来的描述文件,这个描述文件会说这个容器镜像有多少层,每一层里面有什么内容,它的checksum 这些信息都会记录下来,还有最终的可执行文件在哪就是在存储数据里面,就是在一个一个的 blob 里面,真正占有空间的就是这些 blob。
下面看看官方给出的Docker 架构,可以结合此图来理解镜像仓库的概念:
Docker镜像仓库按照不同的分类标准可以划分为多种类型。以下是根据镜像仓库的公开性、供应商和面向群体等维度进行分类的详细介绍:
一、按是否对外公开分类
二、按供应商和面向群体分类
Docker的镜像仓库命令是Docker生态系统中的重要组成部分,它们允许用户与Docker镜像仓库进行交互,包括登录、登出、拉取镜像、推送镜像以及搜索镜像等。以下是对这些命令的详细介绍:
docker login [OPTIONS] [SERVER]
-u
:登陆的用户名-p
:登陆的密码(出于安全考虑,建议不要在命令行中直接包含密码)docker login -u 用户名 -p 密码
(注意:出于安全考虑,实际使用时应避免直接在命令行中输入密码) docker logout [OPTIONS] [SERVER]
docker logout
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
-a
:拉取所有tagged镜像--disable-content-trust
:忽略镜像的校验,默认开启docker pull ubuntu:18.04
:从Docker Hub下载ubuntu的18.04版本镜像docker pull -a java
:从Docker Hub下载REPOSITORY为java的所有镜像如下我们在dockerhub拉取找到自己要拉取的镜像:
找到对应的Tags:
拉取对应的镜像即可,由于是国外的网站,因此我们可以更换国内镜像源增加下载速度(具体参考上篇博客),注意格式为NAME:Tags:
docker push [OPTIONS] NAME[:TAG]
--disable-content-trust
:忽略镜像的校验,默认开启docker push myapache:v1
:上传本地镜像myapache的v1版本到镜像仓库中需要先创建好自己的镜像仓库,并且按照创建好的镜像仓库格式改好镜像源的格式才能进行推送:
docker search [OPTIONS] TERM
--automated
:只列出automated build类型的镜像-f <过滤条件>
:基于给定条件过滤输出,例如-f stars=10
列出收藏数不小于10的镜像--no-trunc
:显示完整的镜像描述docker search -f stars=10 java
:从Docker Hub查找所有镜像名包含java,并且收藏数大于10的镜像--disable-content-trust
来忽略,但通常不推荐这样做。
当然,下面是对您提到的Docker命令的详细解析:
docker images
命令作用:docker images
命令用于列出本地主机上所有可用的Docker镜像。这些镜像可以是您从Docker Hub或其他镜像仓库拉取下来的,也可以是您自己构建的。
命令格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]
尽管该命令支持[OPTIONS]
和[REPOSITORY[:TAG]]
作为可选参数,但通常直接运行docker images
而不带任何参数就足以列出所有镜像。
常用选项:
-a
或 --all
:显示所有镜像(包括中间层镜像)。默认情况下,docker images
只显示顶层镜像。--digests
:显示镜像的摘要信息。-f
或 --filter
:根据提供的条件过滤镜像列表。--no-trunc
:不截断输出信息,显示完整的镜像信息。示例:
docker images
这将列出所有顶层镜像的名称、标签、镜像ID、创建时间以及大小。
docker image inspect
命令作用:docker image inspect
命令用于显示一个或多个Docker镜像的详细信息,包括镜像的配置信息、层信息、元数据等。
命令格式:
docker image inspect [OPTIONS] IMAGE [IMAGE...]
您可以通过指定一个或多个镜像名称或ID来查看它们的详细信息。
常用选项:
--format
:使用Go模板格式化输出信息。这允许您以自定义的格式显示镜像的详细信息。--size
:显示镜像的大小信息。示例:
docker image inspect nginx
这将返回nginx镜像的详细信息,包括其配置、层、架构等。
docker tag
命令作用:docker tag
命令用于给镜像添加一个新的标签(即,重命名镜像或为其指定一个新的版本)。这对于将镜像推送到Docker Hub或其他私有仓库时特别有用,因为您可以为镜像指定一个更具描述性的名称和标签。
命令格式:
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
您需要将SOURCE_IMAGE[:TAG]
替换为源镜像的名称和标签(如果未指定标签,则默认为latest),将TARGET_IMAGE[:TAG]
替换为目标镜像的名称和标签。
示例:
docker tag nginx:1.21 mynginx:latest
这将为nginx镜像的1.21版本添加一个新的标签mynginx:latest
。现在,您可以使用这个新标签来引用这个镜像,就像它是一个全新的镜像一样。请注意,这实际上并没有创建镜像的新副本,而只是为现有镜像添加了一个额外的引用(即,标签)。
• 功能 创建一个新的容器并运行一个命令
• 语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
• 别名 docker container run
• 关键参数
○ -d: 后台运行容器,并返回容器 ID;
○ -i: 以交互模式运行容器,通常与 -t 同时使用;
○ -P: 随机端口映射,容器内部端口随机映射到主机的端口
○ -p: 指定端口映射,格式为: 主机(宿主)端口:容器端口
○ -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
○ --name="nginx-lb": 为容器指定一个名称;
○ -h "mars": 指定容器的 hostname;
○ -e username="ritchie": 设置环境变量;
○ --cpuset-cpus="0-2" or --cpuset-cpus="0,1,2": 绑定容器到指定 CPU 运行;
○ -m :设置容器使用内存最大值;
○ --network="bridge": 指定容器的网络连接类型;
○ --link=[]: 添加链接到另一个容器;
○ --volume , -v: 绑定一个卷
○ --rm :shell 退出的时候自动删除容器
• 样例
#使用 docker 镜像 nginx:latest 以后台模式启动一个容器,并将容器命名为 mynginx。 docker run --name mynginx -d nginx:latest #使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主 机的 80 端口,主机的目录 /data 映射到容器的 /data。 docker run -p 80:80 -v /data:/data -d nginx:latest
我们使用docker在centos7的环境下启动了一个Ubuntu20.04的操作系统,通过使用-it选项以可以交互的终端方式进行启动:
• 功能 列出容器
• 语法 docker ps [OPTIONS]
• 别名 docker container ls, docker container list, docker container ps
• 关键参数
○ -a :显示所有的容器,包括未运行的。
○ -f :根据条件过滤显示的内容。
○ --format :指定返回值的模板文件。如 json 或者 table
○ -l :显示 latest 的容器。
○ -n :列出最近创建的 n 个容器。
○ --no-trunc :不截断输出。
○ -q :静默模式,只显示容器编号。
○ -s :显示总的文件大小。
• 样例
docker ps -a
感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o!
给个三连再走嘛~