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は、マウスが通過したときにドロップダウンボックスを表示するように実装します。

推薦する

React.js フレームワーク Redux 基本ケースの詳細な説明

react.js フレームワーク Redux https://github.com/reactjs/...

2つのシンプルなメニューナビゲーションバーの例

メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

SpringBoot と Vue の相互作用におけるクロスドメイン問題の解決策

目次ブラウザ同一生成元ポリシー1. VUEフロントエンド構成プロキシはクロスドメインの問題を解決しま...

Nginx の realip モジュールの使い方の基礎学習

序文nginx モジュールには、公式とサードパーティの 2 種類があります。nginx のインストー...

CentOS 7.4 にソースコードから MySQL 8.0 をインストールするための詳細なチュートリアル

目次1. 環境2. 準備3. MySQL 8.0.11をインストールするMySQL 8 の公式バージ...

Oracle10パーティションとMySQLパーティションの違いの詳細な説明

一般的に使用される Oracle10g パーティションは、範囲 (範囲パーティション)、リスト (リ...

Google Web Fonts でウェブサイトに無制限のフォントを追加

長い間、リソースの制約により、使用できるフォントが限られていたため、Web サイトの開発は妨げられて...

Vue はアップロードされた画像に透かしを追加する機能を実装します

この記事では、Vueでアップロードされた画像に透かしを追加する具体的な実装コードを参考までに共有しま...

MySQLパスワードを変更するいくつかの方法

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

MySQL でよく使われる型変換関数の概要 (推奨)

1. Concat関数。よく使用される接続文字列: concat 関数。たとえば、SQLクエリ条件...

Vueはシンプルなスライダー検証を実装する

この記事の例では、Vueスライダー検証の実装を共有しています。コードは次のとおりです。 <テン...

MySQL 学習ノート ヘルプ ドキュメント

システムヘルプを表示help contents mysql> ヘルプコンテンツ; ヘルプ カテ...

HTML/XHTML における img 画像タグの基本的な使用法の詳細な説明

画像タグは、Web ページに画像を表示するために使用されます。 HTML/XHTML 画像 <...

Windows 7 環境での Docker 高速ビルドと Alibaba Cloud コンテナ高速化構成の詳細な説明

前回の Docker に関する記事では、MAC システムでの構築について説明しました。この記事では、...

IE5.0以降のHTCコンポーネントの定義の概要

Microsoft IE 5.0 がリリースされる前は、Web プログラミングにおける最大の課題は、...