Dockerレジストリを自己ホストする方法
6595 ワード
このpost 当初はRAZINJ Dev
Docker Registry で使用されるDocker画像のレジストリですDocker Hub , しかし、Docker Hubでの問題は、我々が我々のイメージのための1つのプライベートリポジトリだけを得るということです、そして、我々が複数の個人的なイメージ自己ホスティングを必要とする場合、我々の既存のサーバーのDockerレジストリは最高のオプションです、そして、このポストでは、我々はちょうどそれをしています.
Requirements Notes in self-hosting a registry Install with Docker Compose Use NGINX as a proxy Conclusion Sources Docker Docker Compose Docker and Docker Composmentの基礎理解 NGINX
あなた自身のDockerレジストリをあなたが知っていたいと思っている生産において自己ホスティングについての2つのメモがあります. 生産環境でDockerレジストリを使用すると、安全な接続(SSL/TLS)が必要です. それ以上の制御とセキュリティのためのNGinx Webサーバーを介してプロキシをプロキシに最適です. メモを取った後、我々はレジストリをインストールを開始することができます.
使いやすさのためにDocker Composeを使用してレジストリをインストールします.
クリエイトア
Authメソッドを
現在、インストールの準備をしています.
インターネットにレジストリを公開するために、我々はプロキシウェブサーバとしてNGinxを使用しています.
特定のドメインまたはサブドメインについては、次の設定を使用できます.
nginx設定を追加したり変更したりした後、以下のように再起動します.
このように、私たちは自己生産のために私達自身の個人的なDockerのレジストリを自己完結していると言うことができます.
Dockerレジストリwebsite . DockerレジストリHTTP API specs . いつものように、あなたは何かを学びました.
この便利な発見?お友達とそれを共有すること自由に感じなさい.
ニュースレターに加わってくださいhere 新しい投稿と更新を通知します.
ポストのように?私たちを買うcoffee ❤️.
Docker Registry で使用されるDocker画像のレジストリですDocker Hub , しかし、Docker Hubでの問題は、我々が我々のイメージのための1つのプライベートリポジトリだけを得るということです、そして、我々が複数の個人的なイメージ自己ホスティングを必要とする場合、我々の既存のサーバーのDockerレジストリは最高のオプションです、そして、このポストでは、我々はちょうどそれをしています.
目次
要件
登録の自己ホスティングのメモ
あなた自身のDockerレジストリをあなたが知っていたいと思っている生産において自己ホスティングについての2つのメモがあります.
Dockerでインストールする
使いやすさのためにDocker Composeを使用してレジストリをインストールします.
クリエイトア
docker-compose.yml
ファイルtouch docker-compose.yml
次のコンテンツをファイルにペーストします.version: '3'
services:
app:
image: registry:2
container_name: docker-registry
restart: unless-stopped
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Local Registry Realm
ports:
- 127.0.0.1:8000:5000
volumes:
- ./data:/var/lib/registry
- ./auth:/auth:ro
このファイルでは、ローカルポートを使用してレジストリを記述します8000
そして、我々のデータと認証のためのローカルボリューム(我々は、下記に入ります).Authメソッドを
htpasswd
(基本的なauth )生成する必要がありますhtpasswd
このコマンドを使うファイルdocker run --entrypoint htpasswd httpd:2 -Bbn my_registry_user my_registry_password > htpasswd
ファイル名を作成します.htpasswd
以下のような内容で:# cat htpasswd
my_registry_user:$2y$05$mexS70Ju7VkXag5X7EzDI.Mrt5JZPU5K3mh1oPL0oydhTj2HMpUk.
今この仕事を我々のものにするためにdocker-compose.yml
ファイルを作成する必要がありますauth
ディレクトリとファイルを次のように移動します.mkdir auth && mv htpasswd auth
ファイルツリーは次のようになります.現在、インストールの準備をしています.
docker-compose up -d
エラーがあればログをチェックしてください.docker-compose logs -f
それがすべて良いならば、次のステップに進んでください.プロキシとしてnginxを使う
インターネットにレジストリを公開するために、我々はプロキシウェブサーバとしてNGinxを使用しています.
特定のドメインまたはサブドメインについては、次の設定を使用できます.
upstream docker_registry_app {
server 127.0.0.1:8000;
}
server {
listen 443 ssl http2;
server_name sub.domain.com;
# ssl
ssl_certificate /etc/nginx/certificates/domain.com.pem;
ssl_certificate_key /etc/nginx/certificates/domain.com.key;
# logging
access_log /var/log/nginx/sub.domain.com.access.log;
error_log /var/log/nginx/sub.domain.com.error.log warn;
client_max_body_size 0;
# reverse proxy
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 900;
proxy_pass http://docker_registry_app;
}
}
# https www redirect
server {
listen 443 ssl;
server_name www.sub.domain.com;
# ssl
ssl_certificate /etc/nginx/certificates/domain.com.pem;
ssl_certificate_key /etc/nginx/certificates/domain.com.key;
return 301 https://sub.domain.com$request_uri;
}
# http and www redirect
server {
listen 80;
server_name sub.domain.com www.sub.domain.com;
return 301 https://sub.domain.com$request_uri;
}
注意してくださいclient_max_body_size 0;
ボディサイズに制限がないことを意味し、お客様のニーズに値を適応すること自由に感じる.nginx設定を追加したり変更したりした後、以下のように再起動します.
sudo nginx -t && sudo nginx -s reload
これで、ブラウザで次のURLを訪問して、すべてうまく動作しているかどうかをテストできます.https://sub.domain.com/v2/_catalog
あなたの基本的なAuth資格情報を入力するように求められますhtpassed
ファイル名).結論
このように、私たちは自己生産のために私達自身の個人的なDockerのレジストリを自己完結していると言うことができます.
ソース
この便利な発見?お友達とそれを共有すること自由に感じなさい.
ニュースレターに加わってくださいhere 新しい投稿と更新を通知します.
ポストのように?私たちを買うcoffee ❤️.
Reference
この問題について(Dockerレジストリを自己ホストする方法), 我々は、より多くの情報をここで見つけました https://dev.to/razinj/how-to-self-host-a-docker-registry-38l2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol