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:忽略镜像的校验, 默认开启
  • NAME:TAG:名称以及标签

案例:可以在官网上查阅标签。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]
相关推荐
念何架构之路2 小时前
Docker 容器状态机 学习
java·学习·docker
不能只会打代码4 小时前
Day 002 — Python 工程化 & FastAPI & 数据库速通
数据库·redis·python·docker·fastapi·测试
yanjieliyun6 小时前
家庭服务器从入门到精通 · 第 5 篇 · NPM反向代理从安装到起飞:一条命令搞定HTTPS
docker
天狼啸月19907 小时前
RagSEDE复现: Docker and Ragflow 关系
docker·容器·ragflow·ragsede
java_logo8 小时前
Docker 部署 SamWaf 完整教程:开源 Web 应用防火墙实测
docker·开源·防火墙·waf·samwaf·轩辕镜像·docker部署waf
C137的本贾尼8 小时前
第十篇:Docker & K8s——标准化应用的“集装箱“和“码头调度中心“
docker·容器·kubernetes
增量星球8 小时前
《持续交付2.0系列一》从技术交付到业务引领
java·docker·容器·devops
Zhu7588 小时前
在k8s环境部署Apache kafka4.3.1
容器·kubernetes·apache
探索云原生1 天前
终于搞懂 Kueue:5 个核心对象一次讲透
linux·docker·ai·云原生·kubernetes
AI服务老曹1 天前
Docker部署AI视频分析平台参数配置说明与调优指南
人工智能·docker·音视频