在 Linux 上设置并运行容器注册表在 Linux 上设置并运行容器注册表在 Linux 上设置并运行容器注册表在 Linux 上设置并运行容器注册表
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Linux 上设置并运行容器注册表

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Docker 容器镜像由名为 DockerRegistry 的应用程序交付和存储。注册表整合了容器镜像并加快了开发人员的构建时间。虚拟化提供了相同的运行时环境,但创建映像可能需要付出努力。使用容器时容器编排是成功的。本教程介绍如何设置私有 Docker 注册表并将其配置为公共访问。

Jfrog 容器注册表:它是什么?

所有容器部署、管理、扩展和网络方面都通过容器编排实现自动化。因此,控制大量 Linux® 服务器和容器的企业可能会从容器编排中获利。

Kubernetes 最大、最好的注册表是 JFrog 的容器注册表,它处理 Helm Chart 存储库和 Docker 容器。将 Docker 镜像组织在一个位置,消除 Docker Hub 的限制和保留困难。 JFrog 与您的开发环境连接,以安全、准确、快速地访问外部 Docker 容器注册表。在本教程中,您将在 Linux 上构建自己的 Docker 注册表。

在 Linux 上安装和配置私有 Docker 注册表

步骤01:

命令行上的 Docker 对于入门和测试容器很有帮助,但对于需要许多并行实例的大型部署来说,它会变得很麻烦。

Docker Compose 可以使用一个 .yml 文件来设置每个容器的设置以及与其他容器交互所需的数据。您可以向组成应用程序的每个部分发出指令,并使用 docker-compose 命令行工具集中管理它们。

您将使用 Docker Compose 来管理 Docker 注册表,因为它是一个具有多个组件的程序。您必须创建一个 docker-compose.yml 文件来指定注册表及其数据的存储位置,然后才能启动注册表实例。

这些设置将保存在主服务器上的 docker-registry 目录中。运行命令来创建它:

mkdir ~/docker-registry

将其导航至:

cd ~/docker 注册表

然后,创建一个名为 data 的子文件夹,用于存储注册表的照片:

MKDIR数据

通过运行以下命令,创建并打开名为 docker-compose.yml 的文件:

纳米 docker-compose.yml

以下代码定义了 Docker 注册表的基本实例:

版本:‘3’

服务:

注册表:

图片:注册表:2

端口:

– “5000:5000”

环境:

REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY:/数据

卷:

– ./数据:/数据

您可以通过运行“docker-compose up”命令来初始化配置。

步骤02:

作为要求的一部分,您已在您的域上配置了 HTTPS。因此,您只需设置 Nginx 将流量从您的域引导到注册表容器,以便在那里公开受保护的 Docker 注册表。

您的服务器配置已在文件 /etc/nginx/sites-available/您的域中设置。运行此命令进行修改:

sudo nano /etc/nginx/sites-available/your_domain

您的注册表将在端口 5000 上等待,因此,您必须将所有流量转发到那里。为了从主机获取有关请求本身的更多信息,您还需要在路由到注册表的请求中包含标头。应将以下行添加到位置块中以代替当前内容:

地点/{

# 不允许来自 docker 1.5 及更早版本的连接

# docker pre-1.6.0 没有正确设置 ping 上的用户代理,捕获“Go *”用户代理

if ($http_user_agent ~ “^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*$” ) {

返回404;

}

proxy_pass                          http://localhost:5000;

proxy_set_header  主机              $http_host; # 为了 docker 客户端需要

proxy_set_header X-真实 IP         $remote_addr; # 传递真实客户端的IP

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_read_timeout                  900;

}

完成后,您可以保存并关闭文件并重新启动 Nginx 以应用更改。配置端口转发后,您将进一步加强注册表的安全性。

步骤03:

您可以使用 HTTP 身份验证来限制对 Docker 注册表的访问,方法是在 Nginx 中对其管理的网站进行配置。为此,您将使用 htpasswd 构建身份验证文件并向其中添加有效的用户名和密码组合。

通过安装apache2-utils包,您可以获得htpasswd工具。单击此处了解如何安装该软件包的步骤。

身份验证文件和凭据应保存在 /docker-registry/auth。通过运行创建它:

mkdir ~/docker-registry/auth

导航到它:

cd ~/docker-registry/auth

将 username 替换为您在创建第一个用户时希望使用的用户名。 bcrypt 算法是 Docker 需要的一种算法,-B 选项命令使用它:

htpasswd -Bcregistry.password 用户名

当询问时,提供密码;然后,registry.password 将与凭据组合一起添加。

既然已经建立了凭据列表,您应该更改 docker-compose.yml 以指示 Docker 使用您准备的文件来对用户进行身份验证。可以通过运行以下命令打开该文件:

Nano ~/docker-registry/docker-compose.yml

步骤04:

通过告诉 Docker Compose 保持运行,您可以确保注册表容器在每次系统启动或从崩溃中恢复时启动。这是通过在注册表块下输入以下命令来完成的:

重新启动:始终

步骤05:

您必须确保您的注册表可以处理巨大的文件上传,然后才能将图片推送到其中。

Nginx 默认的文件上传大小限制为 1 m,这对于 Docker 镜像来说太小了。要提高它,您必须更改 /etc/nginx/nginx.conf 主配置文件。运行此命令进行修改:

须藤纳米 /etc/nginx/nginx.conf

将以下行添加到 http 部分:

client_max_body_size 16384m;

保存文件并重新启动 Nginx。

最后的想法

您的 Docker 注册表已启动并正在运行。首先,您在本指南中创建了自己的 Docker 注册表。然后,您配置了 SSL 和 HTTP 身份验证并安装了所需的要求。了解有关备份 Docker 容器的更多信息。

本地 Docker 镜像保存在 JFrog 提供的私有 Kubernetes 注册表中。它使您能够连接到每个应用程序的每个层,并对代码到集群的流程拥有完全的控制和可见性。

©2015-2025 Norria support@norria.com