Docker プライベート ウェアハウスを構築する (自己署名方式)

Docker プライベート ウェアハウスを構築する (自己署名方式)

作成したイメージを一元管理し、サービスの展開を容易にするために、プライベート Docker リポジトリを作成します。公式ドキュメントを読んでみると、Docker では TLS を安全に使用するために CA 認証が必要であることがわかりました。認証に時間がかかるとコストがかかり、無料の有効期限は短すぎます。自己署名を使用する方がまだ簡単です。

環境を整える

環境: Centos 7 仮想マシン 2 台

サーバー IP: 10.57.220.244、Docker リポジトリとして使用

》クライアント IP: 10.57.220.220、イメージのアップロードやプルを行うクライアントとして使用されます

》ドメイン名: lpxxn.com

両方のマシンにDockerバージョン17.03.0-ceがインストールされています

私のように実際のドメイン名を使用しない場合は、クライアント マシン上の hosts ファイルを変更するだけで済みます。

自己署名証明書を生成する

サーバーホスト上で自己署名証明書を生成し、証明書を保存するフォルダを作成します。

mkdir -p 証明書

証明書を生成する

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/lpxxn.com.key -x509 -days 365 -out certs/lpxxn.com.crt

共通名を入力する際は、ドメイン名と同じにする必要があることに注意してください。

ll certsフォルダには、生成された2つのファイルが表示されます

リポジトリイメージを実行します。ローカルに対応するイメージがない場合は、Docker サーバーからダウンロードして起動します。docker ps コマンドを使用して、すでに実行中のウィンドウがあるかどうかを確認できます。

次のようにコードをコピーします
docker run -d -p 5000:5000 --restart=always --name registry_https -v `pwd`/certs:/home/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/certs/lpxxn.com.crt -e REGISTRY_HTTP_TLS_KEY=/home/certs/lpxxn.com.key registry:2

アップロードしたDockerイメージを保存するローカルディレクトリを指定することもできます。

次のようにコードをコピーします
docker run -d -p 5000:5000 -v `pwd`/dockerregister:/var/lib/registry --restart=always --name registry_https -v `pwd`/certs:/home/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/certs/lpxxn.com.crt -e REGISTRY_HTTP_TLS_KEY=/home/certs/lpxxn.com.key registry:2

この時点でサーバーが起動します。最後のステップは、生成された lpxxn.com.crt をクライアントにコピーすることです。独自の方法でコピーできます。私は scp を使用して、最初に /home/test ディレクトリにコピーし、次に /etc/pki/ca-trust/source/anchors ディレクトリにコピーします。

scp -r lpxxn.com.crt [email protected]:/home/test

クライアントの設定

サーバー上で生成された lpxxn.com.crt をクライアント サーバーの /etc/pki/ca-trust/source/anchors ディレクトリにコピーしてチェックアウトします。

証明書を更新し、Docker を再起動します。

アップデート CA 信頼
サービス docker 停止 && サービス docker 開始

わかりました。curlを使用して倉庫を確認します

カール https://lpxxn.com:5000/v2/_catalog 

正常にアクセスできます。 dockerコマンドでアップロードとダウンロードを試してみましょう

docker タグを使用して、ローカル イメージ centos:6 を lpxxn.com:5000/centos6:1.0 としてマークします。

倉庫にプッシュ

プッシュコマンドを実行する

docker push lpxxn.com:5000/centos6:1.0 

倉庫情報を見る

curlを使用してリポジトリ内のイメージとバージョンを表示します

カール https://lpxxn.com:5000/v2/_catalog
カール https://lpxxn.com:5000/v2/centos6/tags/list 

リポジトリからイメージを取得する

まずローカルイメージを削除します

docker rmi lpxxn.com:5000/centos6:1.0
docker rmi centos:6

引っ張って走る

docker pull lpxxn.com:5000/centos6:1.0 

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • dockerプライベート倉庫の構築と利用の詳細説明
  • Dockerプライベートリポジトリをゼロから構築する手順
  • Docker はプライベート ウェアハウス (レジストリ、ハーバー) を構築します
  • プライベートウェアハウスを構築するためのUbuntu Docker Registryの詳しい説明
  • Dockerプライベートウェアハウスレジストリの構築と検証の詳細説明
  • Dockerプライベートウェアハウスを構築する最も簡単な方法の詳細な説明
  • Docker でローカルプライベートウェアハウスを構築するための詳細な手順
  • Docker Registry プライベート ウェアハウスを構築するための詳細な手順

<<:  Windows Server 2008 64ビット MySQL5.6 インストール不要版 設定方法図

>>:  JavaScriptは、マウスが通過したときにドロップダウンボックスを表示するように実装します。

推薦する

MySQLのイベントスケジューラEVENTを理解する

MySQL のイベント スケジューラ EVENT は、Unix crontab や Windows ...

Web デザインにおける HTML フォーマットと長いファイルに関するヒント

<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案、W...

Vue-Routerのインストールプロセスと原理の詳細

目次1. フロントエンドルーティングの実装原則2. vue-Routerの基本的な使い方2.1. イ...

CSS3はトランジション効果を実現するためにtransitionプロパティを使用する。

物件の詳細な説明transition 属性の目的は、一部の CSS プロパティ (背景など) をスム...

Tomcat クラスローダーの実装方法とサンプルコード

Tomcat は内部的に複数の ClassLoader を定義し、アプリケーションとコンテナーが異な...

Docker で複数の MySQL コンテナを作成して実行する方法の例

1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...

MySQLの詳細な分析で使用法と結果を説明します

序文日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行す...

Vueはショッピングカート決済機能をシミュレートします

この記事では、ショッピングカート決済機能を実現するためのVueの具体的なコードを例として紹介します。...

シンプルなナビゲーションバー機能を実現するHTML+CSS

さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...

Linux での Python のアップグレードと pip のインストールの詳細な説明

Linuxバージョンのアップグレード: 1. まず、Linuxオペレーティングシステムに付属するPy...

Vue パッケージ化後の空白ページの解決策

1. vue-cli がプロジェクト パッケージを作成した後にページが空白になる問題の解決方法コマン...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...

Linux で cmake を使用して MySQL をコンパイルおよびインストールするための詳細なチュートリアル

1. cmakeをインストールする1. cmakeの圧縮パッケージを解凍する [root@mysql...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...