云计算核心技术Docker教程:使用 Compose 文件部署注册服务器

云计算核心技术Docker教程:使用 Compose 文件部署注册服务器
2022年06月10日 17:46 TechWeb

如果您的注册表调用是高级的,那么使用 Docker compose 文件来部署它可能会更容易,而不是依赖于特定的docker run 调用。使用以下示例docker-compose.yml作为模板。

registry:

restart: always

image: registry:2

ports:

- 5000:5000

environment:

REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt

REGISTRY_HTTP_TLS_KEY: /certs/domain.key

REGISTRY_AUTH: htpasswd

REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd

REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm

volumes:

- /path/data:/var/lib/registry

- /path/certs:/certs

- /path/auth:/auth

替换/path为包含certs/和目录的auth/ 目录。

docker-compose.yml通过在包含该文件的目录中发出以下命令来启动您的注册表:

$ docker-compose up -d

您可以在没有 Internet 连接的环境中运行注册表。但是,如果您依赖任何非本地图像,则需要考虑以下几点:

您可能需要在连接的主机上构建本地注册表的数据卷,您可以在该主机上运行docker pull以获取远程可用的任何图像,然后将注册表的数据卷迁移到气隙网络。

某些图像(例如官方 Microsoft Windows 基础图像)是不可分发的。这意味着当您将基于这些图像之一的图像推送到您的私有注册表时,不可分发的层不会 被推送,而是始终从其授权位置获取。这对于连接互联网的主机来说很好,但不适用于气隙设置。

您可以配置 Docker 守护程序以允许将不可分发的层推送到私有注册表。 这仅在存在不可分发图像的气隙设置中或在带宽极其有限的情况下有用。 您有责任确保遵守不可分发层的使用条款。

1.编辑daemon.json位于/etc/docker/Linux 主机和C:\ProgramData\docker\config\daemon.jsonWindows Server 上的文件。假设文件之前是空的,添加以下内容:

{

"allow-nondistributable-artifacts": ["myregistrydomain.com:5000"]

}

该值是一个注册表地址数组,以逗号分隔。

保存并退出文件。

2.重启 Docker。

3.如果注册表没有自动启动,请重新启动它。

4.当您将图像推送到列表中的注册表时,它们的不可分发层将被推送到注册表。

新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片