首页 云计算

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

如果您的注册表调用是高级的,那么使用 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.当您将图像推送到列表中的注册表时,它们的不可分发层将被推送到注册表。

官方微博/微信

每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。

↑扫描二维码

想在手机上看科技资讯和科技八卦吗?

想第一时间看独家爆料和深度报道吗?

请关注TechWeb官方微信公众帐号:

1.用手机扫左侧二维码;

2.在添加朋友里,搜索关注TechWeb。

手机游戏更多