用GitLab的「容器注册表」免费保存docker compose的镜像到私有存储
初次见面的朋友,久违的朋友,早上好/晚上好。我是N的人。
Twitter(现在称为X)被冻结了,已经过去了半年。
现在我在BlueSky上活跃,如果可以的话,请关注我!
https://bsky.app/profile/nnahito.com
开场白(建议跳过阅读)
最近,我有一段时间没有管理我自己的博客” https://nnahito.com/”,所以在这个机会之下,我想进行一些改变,于是开始探索”Containerization”的概念,并着手学习这个技术。
如果我们要做,就希望尽可能地免费!让我们实现这样的梦想吧。
好的,那让我们开始吧。
目标人群
由於這是一個帳戶註冊的步驟,我們將跳過詳細的流程,以下是這篇文章的目標讀者。
-
- GitLabのアカウントを持っている
「GitLab?いやいやエンジニアならGitHubだろwww」とかいう訳のわからないこだわりのない人
dockerの操作をある程度わかっている
git関連の操作をある程度わかっている
不安な方は、 https://qiita.com/nnahito/items/565f8755e70c51532459 あたりを見ましょう
Nな人の記事が好き
GitLab的容器注册表
在创建合适的存储库之后,它位于图像的位置上。

创建一个项目
我们立即准备一个适当的docker-compose项目。
因为我们已经在GitHub上准备好了示例代码,所以您可以使用它。
示例环境
https://github.com/nnahito/gitlab-container-samplecode
为了注册图像,登录到注册表中。
也许本来应该注册到由Docker官方准备的仓库中,
但这次我们将保存在GitLab的私有镜像仓库中,
因此需要登录到GitLab。
所以,请执行以下命令,并登录到GitLab。
$ docker login registry.gitlab.com
※ 被要求的ID/PASS是用于登录GitLab的。
图像标记
我们给图像添加标签。
执行以下命令。
$ docker tag コンテナ名:コンテナのバージョン GitLabのコンテナレジストリのパス:コンテナのバージョン
样本
$ docker tag container-test-app:latest registry.gitlab.com/nnahito/container-test:0.01
推送图像
将标签附加到本地代码后,请在GitLab上进行推送。
执行如下命令。
$ docker push GitLabのコンテナレジストリのパス:コンテナのバージョン
我认为只要去Container Registry页面,就能立刻看到”GitLab容器注册表的路径”。
样本
$ docker push registry.gitlab.com/nnahito/container-test:0.01
恭喜!您现在可以进行推送了。

层次不同 (jiē cé bié kè)
如果使用docker-compose,将存在多个容器。
然而,使用上述方法只会推送最后构建的映像。
按照一个容器一个服务(一个进程)的推荐方式,是这样……的吧?
可能吧。不太清楚呢。
如果你想儲存多個容器,應該將它們分開放在不同的層級中。
分层
您可以使用熟悉的方式,对其进行层次分组。
请注意,以下是基于我提供的示例代码使用的示例命令。
首先我们需要构建容器。
$ docker compose build docker-compose.ymlで指定しているサービス名
然后进行标签注册。
$ docker tag コンテナ名:コンテナのバージョン GitLabのコンテナレジストリのパス/階層名:コンテナのバージョン
样本
# コンテナイメージのビルド
$ docker compose build app1
# Registory用にTagを発行
$ docker tag container-test-app:latest registry.gitlab.com/nnahito/container-test/app1:0.02
# コンテナイメージのビルド
$ docker compose build app2
# Registory用にTagを発行
$ docker tag container-test-app:latest registry.gitlab.com/nnahito/container-test/app2:0.02
准备工作已经完成了。我们可以开始推进了。
$ docker push GitLabのコンテナレジストリのパス/階層名:コンテナのバージョン
样本
# app1のコンテナイメージをPush
$ docker push registry.gitlab.com/nnahito/container-test/app1:0.02
# app2のコンテナイメージをPush
$ docker push registry.gitlab.com/nnahito/container-test/app2:0.02
可以使用GitLab在多層次结构中存放多个图像。
使用自己编写的图像
让我们尝试使用之前创建好的映像。
虽然这样说,但普通地pull下来就能使用。
拉 (lā)
$ docker pull リポジトリのパス:バージョン
样本
# app1のコンテナイメージをPull
$ docker pull registry.gitlab.com/nnahito/container-test/app1:0.02
# app2のコンテナイメージをPull
$ docker push registry.gitlab.com/nnahito/container-test/app2:0.02
启动容器
$ docker run -it リポジトリのパス:バージョン
样本
# app1のコンテナを起動
$ docker run -it registry.gitlab.com/nnahito/container-test/app1:0.02
# app2のコンテナを起動
$ docker run -it registry.gitlab.com/nnahito/container-test/app2:0.02
以上。
结束
可以通过这种方式免费将容器进行私密管理,感觉很好。
顺便提一下,据说 GitHub 也有类似的功能,但是我没有详细调查过,所以以后另找机会再说吧。
如果我的回答让您稍微受益,觉得有所帮助的话,请给一个赞或者收藏一下,非常感谢。
下次再见!