在 Synology NAS 上托管 Docker 注册表

照片由Alex CheungonUnsplash

帖子最初出现在brendonotto.com

我一直在做一个项目,我想在我的 Synology NAS 上托管和运行(我有一个 DS920+)。在其上托管自定义软件的最佳方式是运行 Docker 映像,但我不想将其推送到公共存储库,毕竟我有一个本地服务器😁。

获取Docker Repo镜像

这一步非常简单,在您的 NAS 上运行 Docker Repository 映像。搜索注册表可以找到:

[Synology Docker Registry 搜索](https://res.cloudinary.com/practicaldev/image/fetch/s–t_V0R8IB–/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/huut20noojpqoqn4mmtc.jpg)

一旦注册容器启动,我们需要做两件事,一件在你的机器上创建你的 Docker 镜像,另一件在服务器上(在我的例子中是 NAS)

局部变化

打开 Docker 桌面客户端并导航到设置 -> Docker 引擎。在这个屏幕上,我们将为insecure-registries的 JSON 对象添加一个属性。它是一个字符串数组,下面是一个示例:

"insecure-registries": [ "192.168.1.123:9500" ] 

进入全屏模式 退出全屏模式

我在端口 9500 上运行我的注册表,所以我需要在 URL 中指定它。使用您在启动容器时映射的端口。现在完成了,您应该能够使用以下命令推送到该注册表:

docker image push 192.168.1.123:9500/{imageName}:{version} 

进入全屏模式 退出全屏模式

此时,您应该有一个正在运行的注册表,其中包含一个图像!

服务器/NAS 更改

这部分有点起步。我们必须告诉 NAS 有一个不安全的注册表,我们想使用它来检索它自己托管的图像。这意味着 SSH 进入 Synology 并更新配置文件。 SSH 进入后,我们需要将/var/packages/Docker/etc/dockerd.json更新为 sudo,以便我们可以将更改写回文件系统。一旦在这个文件中打开(我使用 vi 进行这样的快速更改),我们可以为我们添加客户端的相同属性添加一个条目:insecure-registries具有相同的数组参数和一个值。我发现很奇怪并且很可能是侥幸的是,我必须将新条目添加到 JSON 对象中按字母顺序排列的正确位置。它不应该重要,但它确实🤷u200d♂️。

文件更新完成后,保存并关闭它。我们需要重新启动 Docker 服务,以便它识别配置中的更改。您可以通过以下两种方式执行此操作:

sudo systemctl restart pkgctl-Docker 

进入全屏模式 退出全屏模式

或者

synopkgctl restart pkgctl-Docker 

进入全屏模式 退出全屏模式

第一个是 Linux 上的标准 systemd,第二个是 Synology 用于管理其软件包的命令行工具。

完成此操作后,使用 Portainer 之类的工具或在 Synology 仪表板中打开 Docker 视图的设置并添加新的存储库!

[群晖使用本地 Docker Registry](https://res.cloudinary.com/practicaldev/image/fetch/s–NV_LMTIx–/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/wv8tmdd5blr1iedqtilq.jpg)

谢谢阅读! ✌

原文链接:https://devpress.csdn.net/linux/62ee989f7e66823466182792.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享