使用される Docker イメージが増えるにつれて、イメージを保存する場所、つまりウェアハウスが必要になります。現在、一般的に使用されている倉庫には、公営倉庫と民間倉庫の 2 種類があります。最も便利な方法は、パブリック リポジトリを使用してアップロードおよびダウンロードすることです。パブリック リポジトリからイメージをダウンロードする際には登録する必要はありませんが、アップロードする際には登録が必要です。 最もよく使われるプライベート倉庫は、レジストリとハーバーです。次に、レジストリプライベート倉庫の構築方法を詳しく紹介します。ハーバーは次のブログ投稿で展開する予定です。 1. レジストリプライベートウェアハウスをデプロイする ケースの説明 2 台の CentOS7.4 マシン。1 台は Docker プライベート リポジトリ用、もう 1 台はテスト用の Docker クライアント用です。 両方のサーバーにDockerサービスをインストールする必要があります。ブログ投稿を参照してください: Docker.v19バージョンのインストール 1. レジストリプライベートウェアハウスを構成する [root@centos01 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf <!--docker ホストでルーティング機能を有効にする--> [root@centos01 ~]# sysctl -p <!--設定を更新--> ネット.ipv4.ip_forward = 1 [root@centos01 ~]# vim /etc/docker/daemon.json <!--イメージアクセラレーションを設定する--> {"registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]} <!--Alibaba Cloud Acceleration を追加--> [root@centos01 ~]# systemctl reload docker <!--docker サービスを再起動します--> [root@centos01 ~]# docker search registry <!--レジストリイメージを検索--> <!--レジストリ イメージは、状況に応じて直接プルダウンすることも、ダウンロードしないこともできます--> [root@centos01 ~]# docker run -d -p 5000:5000 --name registry --restart=always -v /opt/registry:/var/lib/registry レジストリ <!-- レジストリ コンテナーを実行し、レジストリ サービスを実行して独自のイメージを保存します --> <!--"--restart=always" パラメータは、このコンテナが docker サービスの起動後に起動することを意味します --> [root@centos01 ~]# docker ps <!--docker で実行中のコンテナを表示します--> コンテナID イメージ コマンド 作成ステータス ポート名 a7773d77b8a3 レジストリ "/entrypoint.sh /etc…" 50 秒前 46 秒前にアップ 0.0.0.0:5000->5000/tcp レジストリ [root@centos01 ~]# docker イメージ <!--すべての docker イメージを表示--> リポジトリ タグ イメージ ID 作成 サイズ レジストリ最新 708bc6af7e5e 3か月前 25.8MB tomcat 最新 1b6b1fe7261e 5日前 647MB hub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3年前 602MB [root@centos01 ~]# vim /etc/docker/daemon.json <!--レジストリ サービスをサポートするように docker サービスを構成する--> {"レジストリミラー":["https://6kx4zyno.mirror.aliyuncs.com"], "insecure-registries":["192.168.100.10:5000"] <!--この行を追加--> } [root@centos01 ~]# systemctl reload docker <!--docker サービスを再起動します--> 2. レジストリプライベートウェアハウスに画像をアップロードする [root@centos01 ~]# docker タグ hub.c.163.com/public/centos:6.7-tools 192.168.100.10:5000/image/centos:6.7 <!--画像タグを変更する--> [root@centos01 ~]# docker push 192.168.100.10:5000/image/centos:6.7 <!-- イメージをレジストリのプライベート ウェアハウスにアップロードします --> 2. プライベートリポジトリにアクセスできるようにDockerクライアントを構成する <!-- クライアントに Docker サービスをインストールし、イメージ アクセラレーションを構成する --> [root@centos02 ~]# vim /etc/docker/daemon.json <!--レジストリ サービスをサポートするように docker を構成する--> {"レジストリミラー":["https://6kx4zyno.mirror.aliyuncs.com"], "insecure-registries":["192.168.100.10:5000"] <!--この行を追加--> } [root@centos02 ~]# systemctl restart docker <!--docker サービスを再起動します--> [root@centos02 ~]# docker pull 192.168.100.10:5000/image/centos:6.7 <!--クライアントはプライベートウェアハウス内のイメージをダウンロードします--> [root@centos02 ~]# docker images <!--イメージが正常にダウンロードされたかどうかを確認します--> リポジトリ タグ イメージ ID 作成 サイズ 192.168.100.10:5000/image/centos 6.7 b2ab0ed558bb 3年前 602MB この時点で、レジストリのプライベート ウェアハウスは構築されましたが、現在問題が発生しています。これも展開されると、企業内のすべての担当者がプライベート ウェアハウスにアクセスできるようになります。セキュリティ上の理由から、レジストリに認証を追加します。認証に合格した後でのみ、プライベート ウェアハウスのイメージをアップロードまたはダウンロードできます。 3. 認証をロードするようにレジストリを構成する [root@centos01 ~]# yum -y install httpd-tools <!--暗号化ツール httpd-tools をインストールします--> [root@centos01 ~]# mkdir /opt/registry-auth <!--検証キーを保存するディレクトリを作成します--> [root@centos01 ~]# htpasswd -Bbn bob pwd@123 > /opt/registry-auth/htpasswd <!--レジストリ認証データベースを構成する--> <!--"-Bbn" パラメータの説明: B はパスワードの暗号化を強制します。b はコマンドにパスワードを入力し、パスワードの入力を求めません。n はキー ファイルを更新しません --> <!--このサーバー上のすべてのコンテナを削除し、認証を必要とするプライベート ウェアハウス コンテナを再生成します--> [root@centos01 ~]# docker run -d -p 5000:5000 --restart=always \ -v /opt/レジストリ認証/:/auth/ \ -v /opt/registry:/var/lib/registry --name レジストリ認証 -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=レジストリ領域" \ -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" レジストリ <!--認証をサポートするレジストリ プライベート イメージ リポジトリ コンテナーを再実行します--> [root@centos01 ~]# docker tag tomcat:latest 192.168.100.10:5000/image/tomcat:1.0 <!--ミラー変更タグ--> [root@centos01 ~]# docker push 192.168.100.10:5000/image/tomcat:1.0 <!-- アイデンティティ認証なしでプライベートリポジトリにイメージをアップロードできるかどうかをテストします --> 基本認証資格情報なし <!--本人確認がないためアップロードできないというメッセージが表示されます--> [root@centos01 ~]# dockerログイン 192.168.100.10:5000 <!--プライベートイメージリポジトリにログインし、本人認証に合格した後にアップロードします--> ユーザー名: bob <!--bob を入力--> パスワード: <!--パスワードを入力--> ……………… <!--一部省略--> ログインに成功しました <!--認証に合格しました。これでプライベート倉庫に画像をアップロードできます--> [root@centos01 ~]# docker push 192.168.100.10:5000/image/tomcat:1.0 <!-- イメージをプライベートウェアハウスに再度アップロードします --> プッシュはリポジトリ [192.168.100.10:5000/image/tomcat] を参照します。 b0ac242ce8d3: プッシュ 5e71d8e4cd3d: 押された eb4497d7dab7: プッシュ bfbfe00b44fc: プッシュ d39111fb2602: プッシュ 155d997ed77c: プッシュ 88cfc2fcd059: プッシュ 760e8d95cf58: プッシュ 7cc1c2d7e744: プッシュ 8c02234b8605: プッシュ 1.0: ダイジェスト: sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c サイズ: 2421 [root@centos02 ~]# docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--認証なしでプライベートリポジトリからイメージをダウンロードすると、Docker クライアントは直接拒否されます--> デーモンからのエラー応答: http://192.168.100.10:5000/v2/image/tomcat/manifests/1.0 を取得: 基本認証資格情報がありません [root@centos02 ~]# dockerログイン 192.168.100.10:5000 <!--プライベート倉庫にログインし、本人認証に合格します--> ユーザー名: bob <!--bob を入力--> パスワード: <!--パスワードを入力--> ログインに成功しました <!--認証に合格しました--> [root@centos02 ~]# docker pull 192.168.100.10:5000/image/tomcat:1.0 <!--プライベートウェアハウス内のイメージをダウンロード--> 1.0: image/tomcat からプル 376057ac6fa1: プル完了 5a63a0a859d8: プル完了 496548a8c952: プル完了 2adae3950d4d: プル完了 0a297eafb9ac: プル完了 09a4142c5c9d: プル完了 9e78d9befa39: プル完了 18f492f90b9c: プル完了 7834493ec6cd: プル完了 216b2be21722: プル完了 ダイジェスト: sha256:55b41e0290d32d6888aee2e9a15f03cc88d2f49d5ad68892c54b9527d0ed181c ステータス: 192.168.100.10:5000/image/tomcat:1.0 の新しいイメージをダウンロードしました 192.168.100.10:5000/イメージ/tomcat:1.0 [root@centos02 ~]# docker イメージ <!--docker クライアント イメージを表示--> リポジトリ タグ イメージ ID 作成 サイズ 192.168.100.10:5000/image/tomcat 1.0 1b6b1fe7261e 5日前 647MB 192.168.100.10:5000/image/centos 6.7 b2ab0ed558bb 3年前 602MB Docker プライベート ウェアハウス レジストリの導入実装に関する記事はこれで終了です。Docker プライベート ウェアハウス レジストリに関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySQL トランザクション分離レベルの表示と変更の例
目次1. プロジェクトの説明1.1 背景1.2 実装設計1.2.1 従来の方法1.2.2 最適化され...
MySQL 5.7 より前のバージョンのパスワードを変更する方法:方法1: SET PASSWORD...
疑問が生じるこの質問は、ファイルのダウンロードを記述しているときに発生しました。HttpServle...
目次1. React.FC<> 2. クラスxxはReact.Componentを拡張し...
目次序文: 1. ロック待機とデッドロックを理解する2. 現象の再発と治療要約:序文: MySQL ...
mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...
目次1. インストール2. vue2でEchartsを使用するmain.jsファイル内コンテナが与え...
この記事ではMySQL 5.7.16のインストールと設定方法を記録します。具体的な内容は以下のとおり...
その特性は次のとおりです。方向アクティブな字幕のスクロール方向を設定するコードは次のとおりです。 &...
目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...
フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...
1. 50と93では鏡像が消える [root@h50 /]# df -h ファイルシステムの使用済み...
インストールユーザーにインストール権限があることを確認してくださいルートスイッチなしsuルート(su...
Linux に puppeteer をインストールするときに、次の問題が発生する可能性があります。こ...
コンテナは Docker のもう一つの中心的な概念です。簡単に言えば、コンテナとは、独立して実行され...