局域网内部署 Docker Registry(推荐)

局域网内部署 Docker Registry 是一种常见的场景,可以为团队内部提供一个高效、安全的容器镜像存储与管理解决方案。下面是完整的攻略过程。

准备工作

首先,需要一台物理机或者虚拟机,安装 Docker Engine。另外,需要准备好一份自签名的 SSL 证书,以确保 Docker Registry 镜像仓库服务能够享受到 HTTPS 加密传输的好处。

步骤一:创建 Registry 存储目录

创建存储 Registry 镜像仓库的目录,并赋予读写权限给当前用户:

$ mkdir -p /home/user/registry/data
$ sudo chown -R $(whoami) /home/user/registry/data

其中,/home/user/registry/data 是存储 Registry 镜像仓库的目录。

步骤二:启动 Docker Registry 容器

使用 Docker 命令启动 Registry,同时指定 SSL 证书的路径和制定存储数据的目录。示例代码如下:

$ docker run -d \
  --name registry \
  -p 5000:5000 \
  -v /home/user/registry/data:/var/lib/registry \
  -v /path/to/registry.crt:/certs/registry.crt \
  -v /path/to/registry.key:/certs/registry.key \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
  registry:2

其中,--name registry 指定了容器的名称,-p 5000:5000 表示容器内部的 5000 端口映射到本地的 5000 端口, -v /home/user/registry/data:/var/lib/registry 表示将存储 Registry 镜像仓库的目录挂载到容器内部,-v /path/to/registry.crt:/certs/registry.crt-v /path/to/registry.key:/certs/registry.key 表示将 SSL 证书挂载到容器内部。-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.key 则是指定使用 SSL 证书来启用 HTTPS 传输。

启动完成之后,访问 https://localhost:5000/v2/_catalog 会出现“{}”的情况,代表 Registry 镜像仓库启动成功。

示例一:推送镜像到 Registry

假设有一个名为 myimage 的镜像,现在要将其推送到刚刚启动的 Registry 镜像仓库中。示例代码如下:

$ docker pull myimage
$ docker tag myimage localhost:5000/myimage
$ docker push localhost:5000/myimage

其中,docker pull myimage 是从 Docker Hub 下载镜像,docker tag myimage localhost:5000/myimage 将镜像 myimage 打上 localhost:5000 的 tag,最后使用 docker push localhost:5000/myimage 将镜像推送到刚刚搭建的 Registry 镜像仓库。

示例二:从 Registry 拉取镜像

示例代码如下:

$ docker pull localhost:5000/myimage

其中,docker pull localhost:5000/myimage表示从 Registry 镜像仓库中拉取名为 myimage 的镜像。

至此,局域网内部署 Docker Registry 的攻略就完成了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:局域网内部署 Docker Registry(推荐) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Docker安装Jenkins-2.249.3-1.1的详细过程

    安装Jenkins-2.249.3-1.1版本的步骤如下: 步骤1:安装Docker 如果您的机器上还没有安装Docker,请先安装。您可以根据您所使用的操作系统在Docker官网上下载对应版本的Docker并进行安装。安装Docker后,请确保Docker服务已经启动。 步骤2:运行Jenkins容器 以下是使用Docker运行Jenkins-2.249.…

    Docker 2023年5月16日
    00
  • Docker使用技巧及常用命令

    检查curl包是否安装? which curl 如果curl没有安装的话,则先更新apt源,并安装curl,如下: apt-get updateapt-get install curlapt-get updatewget -qO- https://get.docker.com/ | sh 设置当前用户为docker用户组,便于解决每次执行docker命令时都…

    Docker 2023年4月11日
    00
  • Docker快速部署国产达梦数据库的实现示例

    下面我将详细讲解“Docker快速部署国产达梦数据库的实现示例”的完整攻略,过程中涉及两条示例说明。 示例1:使用Docker部署达梦数据库 安装Docker 首先要安装Docker,可以参考Docker官网的安装指南,安装完成后可以通过运行命令docker version来验证是否安装成功。 拉取达梦数据库镜像 接下来需要从Docker Hub上拉取达梦数…

    Docker 2023年5月16日
    00
  • docker迁移数据目录的方法步骤

    当我们使用 Docker 来构建和管理容器时,可能需要迁移数据目录。一些常见的情况包括: 本地磁盘空间不足,需要将 Docker 数据目录迁移至更大的磁盘 Docker 环境需要迁移到一个新的服务器 下面是迁移 Docker 数据目录的步骤和示例: 步骤一:停止 Docker 服务 首先停止 Docker 服务,确保 Docker 正常停止。您可以使用以下命…

    Docker 2023年5月16日
    00
  • Docker不做虚拟化内核,对.NET有什么影响?

    引子 前两天刷抖音,看见了这样一个问题。问题:容器化不做虚拟内核,会有什么弊端?Java很多方法会跟CPU的核数有关,这个时候调用系统函数,读到的是宿主机信息,而不是我们限制资源的大小。思考:在我们.NET中是否也会出现这种问题呢? 环境准备 1. 准备程序 在我们.NET中,并行编程(Parallel)或者线程池(ThreedPool)中,默认会根据CPU…

    2023年4月10日
    00
  • 大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad

    前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介 大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s ?️Reference:IoT 边缘计算系列文章 HashiCorp 解决方案 – Nomad + Docker 简介 Nomad: 一个简单而灵活的调度器和编排器,可在内部和云端大规模部署和管理容器和非容器化…

    2023年4月9日
    00
  • 基于docker实现mysql主从,数据持久化存储

    一:环境配置 mysql-master [root@localhost ~]# mkdir /mysql-master-data [root@localhost ~]# mkdir /mysql-master [root@localhost mysql-master]# vim my.cnf [mysqld] pid-file = /var/run/mysq…

    Docker 2023年4月11日
    00
  • gitlab(docker)启动

    启动方式: 将内容保存至docker-compose.yml 文件内; 使用命令“docker-compose up -d“启动; “`ymlversion: ‘2’ services: boxfish-redis: image: sameersbn/redis:latest restart: always volumes: – /nfs-storage/…

    Docker 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部