🧃
ローカルでDocker Registryを起動する
はじめに
- ローカルにDocker Registryを起動します。
- BASIC認証を設定します。
- 他サーバから利用する場合はリバースプロキシでHTTPS化を実施する。
- 以下のシェルや各種ファイルは/mnt/registry/に配置する想定。
情報元
認証情報の作成
make_auth.sh
#!/bin/bash
cd /mnt/registry/
mkdir -p auth
rm -f auth/htpasswd
docker run --rm --entrypoint htpasswd registry:2.6.2 -Bbn test1 4WRNKQtamzfLXTvpEvq6jYTi >> auth/htpasswd
docker run --rm --entrypoint htpasswd registry:2.6.2 -Bbn test2 8787wzAb6PtwKBsBvdqJirnM5 >> auth/htpasswd
# 必要に応じて追加
Docker Registryの起動
start.sh
#!/bin/bash
cd /mnt/registry/
umask 000
RPORT=5000
mkdir -p /mnt/registry/data
docker run -d \
--name registry \
--restart=always \
-v `pwd`/auth:/auth \
-p 127.0.0.1:${RPORT}:${RPORT} \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-e REGISTRY_HTTP_ADDR=0.0.0.0:${RPORT} \
-v /mnt/registry/data:/var/lib/registry \
registry:2.6.2
Docker Registryの停止
end.sh
#!/bin/bash
docker stop registry
docker container rm registry
ログイン
docker login 127.0.0.1:5000
# user = test1
# password = 4WRNKQtamzfLXTvpEvq6jYTi
その他
- registry:2.6.2か2.6以外にするとhtpasswdがないので注意が必要です
- Docker Swarmでローリングアップデートを行うためには必ずDocker Registryが必要です。
- 個人的にはcomposerより、Swarm + Registryのほうが好みです。
Discussion