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

推薦する

Vueのデータ応答性原則の詳細な説明

この記事は主に、Vue のレスポンシブ ソース コードを理解していない、または触れたことがない人向け...

Vue プロジェクトがページング効果を実現

ページング効果は、参考までにvueプロジェクトに実装されています。具体的な内容は次のとおりです。 1...

Linux CentOS 6.5 ifconfig が IP を照会できない問題の解決方法

最近、何人かの友人から、仮想マシンに CentOS をインストールした後、ifconfig コマンド...

aタグのhref属性とonclickイベントの比較

まず、href 属性と onclick イベントの実行順序について説明します。マウスが a タグをク...

HTML 順序なしリスト 箇条書き 画像を使用した CSS の記述

少なくとも 5 冊のベストセラー書籍の順序なしリストを含む HTML ページを作成します。各書籍の前...

Linuxの一般ユーザー向けスケジュールタスクの詳細な説明

序文通常のユーザーはcrontabスケジュールタスクを定義します。たとえば、Oracleユーザーはス...

VMware ESXi のインストールと使用記録(ダウンロード付き)

目次1. ESXiをインストールする2. ESXiをセットアップする3. ESXiを起動するESXi...

すべてのブラウザに対応したデータURIとMHTMLの完全なソリューション

データURI Data URI は、小さなファイルをドキュメントに直接埋め込むために RFC 239...

jQueryは、マウスをドラッグしてdivの位置とサイズを変更する方法を実装しています。

Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...

Vue3 における親コンポーネントと子コンポーネント間の値の転送の詳細な説明

vue3 が誕生してからかなり時間が経ち、筆者も最近になって vue3 を学び始めました。 vue2...

MySQLのストレージエンジンについてお話しましょう

基礎リレーショナル データベースでは、各データ テーブルはファイルに相当し、異なるストレージ エンジ...

JavaScript でプライベート メンバーを作成する

目次1. クロージャを使用する2. ES6クラスを使用する3. ES2020提案を使用する4. We...

React Fragment の紹介と詳しい使い方

目次序文フラグメントの動機React Fragment の紹介と使用<React.Fragme...

Windows で Mysql を起動したときに 1067 が表示される場合の解決策

数日前に仕事を始めて、Mysql をインストールしたところ、開くことができました。今日、会社に行った...

モバイルウェブページのサイズ調整を実装する方法

ようやく手元のプロジェクトが終了し、行方不明だった人たちが戻ってきました!プロジェクトを進める過程で...