Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
52
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

DockerのプライベートレジストリとしてGitLabのContainerRegistryを使う

GitLabのversion8.8からDockerコンテナレジストリの機能が使えるようになりました。
今回はGitLabContainerRegistryを使得るようになるまでの手順を書こうと思う。

対象者

パッケージ(yumやapt)でGitLabをインストールした人
※今回は苦行インストールした人は対象にしません、ごめんなさい><

前提

  • GitLabのversion8.8+がインストール済みであること
  • 今回は最低限の設定しか書きません。

設定手順

(1) 証明書の作成

console
mkdir /certs
openssl req \
    -newkey rsa:4096 -nodes -sha256 -keyout /certs/registry.key \
    -x509 -days 365 -out /certs/registry.crt

(2) GitLabのContainerRegistryの設定

  • 下記の三箇所を変更する
/etc/gitlab/gitlab.rb
###############################
# Container registry settings #
###############################

registry_external_url 'https://registry.example.com'


(省略)


##################
# Registry NGINX #
##################

registry_nginx['ssl_certificate'] = "/certs/registry.crt"
registry_nginx['ssl_certificate_key'] = "/certs/registry.key"

(3) 各種設定の再読み込み

gitlab-ctl reconfigure

※ reconfigureはGitLabが起動している状態からを期待して動作してるっぽい

(4) GitLabにアクセスし、リポジトリの真ん中編のRegistryが表示されている場合は、ポチッと!

  • ない場合は、下記の一番下の「Edit Project」を選択する。

  • Features -> Container Registryにチェックをいれ、[Save changes]を設定し、Registryを押す。

使い方

(1) ログインしてみましょう

docker login registry.example.com
  • IDとパスワードが聞かれるので、GitLabにログインするときのものを使用する。
  • 例:root / 5iveL!fe
  • ログイン成功するとsuccessと表示される

これで使用する準備ができました!

(2) ログイン後はイメージのビルドや、プッシュが可能になる。

# カレントディレクトリのDockerfileがビルドされる。
docker build -t registry.example.com/test/test_prj .

# 作成したイメージをレジストリにプッシュする
docker push registry.example.com/test/test_prj

(例)成功すると下記の様に画面に見える。
DockerImage.png

Tips

Centos系の場合

update-ca-trust enable
cp /certs/registry.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust extract

Macの場合

(1) Macにファイルを持ってきて、openでKeyChainで読み込む

open ~/registry.crt

(2) Docker にinsecureレジストリ登録

(3) Dockerのリスタート

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
52
Help us understand the problem. What are the problem?