Docker 镜像仓库是什么?有哪些镜像仓库命令?

1. Docker 的架构


(图片来源:Docker架构图

  1. Registry(Docker 仓库) : Docker 仓库用来保存镜像,Docker 官方提供了一个公共的 Docker 仓库,称为 Docker Hub,开发者可以在 Docker Hub 上分享和获取 Docker 镜像。
  2. Docker daemon:Docker daemon 是服务器组件,是 Docker 最核心的后台进程。
  3. Docker 客户端(Client): Docker 客户端(Client)是用于与 Docker 守护进程(Daemon)进行交互的命令行工具或图形用户界面。它允许用户通过简单的命令或界面操作来管理 Docker 上的容器、镜像、网络等资源。
  4. Docker 主机(Host):是指运行 Docker 守护进程(Docker Daemon)的物理机器或虚拟机。负责管理和运行 Docker 容器。Docker 主机提供了一个环境,让用户能够创建、部署和管理 Docker 容器。
  5. Docker 镜像(Images):是用于创建 Docker 容器的静态模板。镜像包含了运行容器所需的所有文件系统内容、运行时配置和环境变量等信息。换句话说,镜像是一个只读的模板,可以用来创建运行时的容器实例。
  6. Docker 容器(Container):Docker 平台上运行的轻量级、独立的可执行单元。每个容器都是一个独立的环境,包含了应用程序以及其依赖的所有运行时组件,如库、环境变量和配置文件等。

2. Docker 仓库

镜像仓库 (Docker Registry) 负责存储、管理和分发镜像,并且提供了登录认证能力,建立了仓库的索引。

元数据(Metadata): 这是关于镜像的描述信息,包括镜像的标签(Tag)、作者、创建时间、版本、大小等。元数据提供了关于镜像的基本信息,帮助用户了解镜像的特性和用途。

仓库可以分为私有仓库以及公有仓库,像 Docker Hub 之类的公有仓库不用登录就可以下载镜;而私有仓库不对外开放,往往位于私有网络,只有个人/公司内部人员可以使用。

启动容器时,docker daemon 会试图从本地获取相关的镜像;本地镜像不存在时,其将从 Registry 中下载该镜像并保存到本地;

3. 常用的仓库命令

官方文档:docker login | Docker Docs

3.1 docker login

登录到一个 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

语法:

复制代码
docker login [OPTIONS] [SERVER]
  • -u :登陆的用户名。
  • -p :登陆的密码。
  • SERVER:表示仓库地址。
       这里默认登录的是 Docker Hub,需要自己去官网注册。

3.2 docker pull

从镜像仓库中拉取或者更新指定镜像

复制代码
 docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • OPTIONS\]: * -a : 拉取所有 tagged 镜像 * --disable-content-trust:忽略镜像的校验, 默认开启

案例:可以在官网上查阅标签。Docker Hub

复制代码
docker pull nginx:1.23.4

或者利用 digest :

复制代码
docker pull nginx:sha256:a97a153152fcd6410bdf4fb64f5622ecf97a753f07dcc89dab14509d059736cf

3.3 docker push

默认格式:

复制代码
docker push [OPTIONS] NAME[:TAG]

将本地的镜像上传到镜像仓库,要先登陆到镜像仓库,并先创建一个自己的仓库。

填写好相应的信息后,可以看到它给你的推送格式:我这是 docker push cll2024/nginx:tagname

先将自己的镜像改个标签:

复制代码
docker tag nginx:1.23.4 cll2024/nginx:1.23.4

再 push:

复制代码
 docker push cll2024/nginx:1.23.4

可以看到仓库里面以及有了该镜像。

从 Docker Hub 查找镜像。

复制代码
 docker search [OPTIONS] TERM
  • --no-trunc: 显示完整的镜像描述;

  • -f <过滤条件>: 列出收藏数不小于指定值的镜像

    表示 star 不小于 10 的镜像

    docker search -f stars=10 nginx

3.5 docker logout

退出登录 Docker 镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub。

复制代码
docker logout [SERVER]
相关推荐
小钱c72 小时前
MacOS安装Docker Desktop并汉化
macos·docker·容器
笨小蛙3 小时前
服务器Docker容器创建与VScode远程连接SSH使用
服务器·vscode·docker·容器·ssh
蓝色的猴子4 小时前
Linux.docker.k8s基础概念
linux·docker·kubernetes
斯普信云原生组4 小时前
K8S集群主机网络端口不通问题排查
网络·容器·kubernetes
matrixlzp4 小时前
K8S StatefulSet 快速开始
云原生·容器·kubernetes
David爱编程4 小时前
容器网络是怎么工作的?Pod、Service、CNI 一次讲清楚!
后端·云原生·容器
檀越剑指大厂7 小时前
【Docker系列】Docker 容器内安装`ps`命令
运维·docker·容器
锦瑟居士13 小时前
Docker 笔记 -- 借助AI工具强势辅助
笔记·docker·eureka
LetsonH13 小时前
Ubuntu 22.04 系统下 Docker 安装与配置全指南
linux·ubuntu·docker
xbd_zc13 小时前
【Dockerfile 完全参数化的通用 APT 源配置方案】
docker