証明書を使用してリモート Docker サーバーに接続する方法

証明書を使用してリモート Docker サーバーに接続する方法

Docker サーバーへのリモート接続を開始する前に、リモート サーバーに Docker がインストールされており、サーバー上で Docker が正常に実行されていることを確認する必要があります。次に、IDEA 証明書を使用して Docker にリモート接続する手順を完了します。

1. スクリプトを使用してDockerのTLSを暗号化する

以下のスクリプトは「Docker リモート API ワンクリック TLS 暗号化」から引用したものです。次に、このスクリプトを使用して、暗号化された証明書ファイルの生成を完了します。

/root ディレクトリに暗号化スクリプトを作成します: vi create_verify.sh。

スクリプトの「xxxx」セクションに、サーバーのパブリック IP アドレスを入力することに注意してください。

#!/bin/bash
mkdir -p /root/tls/pem
#DOMAIN_HOST=`ifconfig eth0 | grep "inet" | awk '{ print $2}' | sed -n '1p;1q'`
DOMAIN_HOST=`ホスト名`
ホスト=$DOMAIN_HOST
# カスタム情報 PASSWORD="HeDongHudj"
国=CN
州=gd
都市=gz
組織=dounine
グループ=dg
名前=湖
SUBJ="/C=$COUNTRY/ST=$PROVINCE/L=$CITY/O=$ORGANIZATION/OU=$GROUP/CN=$HOST"
# カスタム情報#================================================================================================================================
#このフォームは、自分自身に証明書を発行するためのものです。あなたが CA 組織である場合、または第三者組織に証明書を発行してもらうこともできます。 openssl genrsa -passout pass:$PASSWORD -aes256 -out /root/tls/pem/ca-key.pem 4096
# 2. ルート証明書のRSA秘密鍵を使用して自己署名ルート証明書(ビジネスライセンス)を生成する
openssl req -new -x509 -days 365 -passin pass:$PASSWORD -key /root/tls/pem/ca-key.pem -sha256 -subj $SUBJ -out /root/tls/pem/ca.pem
#============================================================================================
#サーバーに証明書を発行する# 1. サーバーは独自の秘密鍵を生成します openssl genrsa -out /root/tls/pem/server-key.pem 4096
# 2. サーバーは証明書を生成します(公開鍵とサーバー情報が含まれます)
openssl req -new -sha256 -key /root/tls/pem/server-key.pem -out /root/tls/pem/server.csr -subj "/CN=$DOMAIN_HOST"
# 3. どうやって接続するのですか? 複数の IP アドレスを設定し、カンマで区切ることができます。 echo subjectAltName=IP:xxxx,IP:0.0.0.0 > /tmp/extfile.cnf
# 4. 認証局は証明書にスタンプを押して有効にします openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/server.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/server-cert.pem -extfile /tmp/extfile.cnf
#============================================================================================
#クライアントに証明書を発行する openssl genrsa -out /root/tls/pem/client-key.pem 4096
openssl req -subj '/CN=client' -new -key /root/tls/pem/client-key.pem -out /root/tls/pem/client.csr
echo 拡張キー使用法 = clientAuth > /tmp/extfile.cnf
openssl x509 -passin pass:$PASSWORD -req -days 365 -sha256 -in /root/tls/pem/client.csr -CA /root/tls/pem/ca.pem -CAkey /root/tls/pem/ca-key.pem -CAcreateserial -out /root/tls/pem/client-cert.pem -extfile /tmp/extfile.cnf
#============================================================================================
# ファイルをクリーンアップします rm -rf /root/tls/pem/ca-key.pem
rm -rf /root/tls/pem/{サーバー、クライアント}.csr
rm -rf /root/tls/pem/ca.srl
# 最終ファイル# ca.pem == CA 証明書# client-cert.pem == クライアント証明書# client-key.pem == クライアント秘密鍵# server-cert.pem == サーバー証明書# server-key.pem == サーバー秘密鍵

スクリプトが作成されたら、次のスクリプトを実行します: sh create_verify.sh

シェル スクリプトを実行すると、ca.pem、client-cert.pem、client-key.pem、server-cert.pem、server-key.pem 証明書ファイルが /root/tls/pem ディレクトリに生成されます。

次に、ca.pem、client-cert.pem、client-key.pem の 3 つのファイルを任意のローカル ディレクトリにコピーし、client-cert.pem と client-key.pem の名前をそれぞれ cert.pem と key.pem に変更します。このディレクトリは後で使用することに注意してください。

2. Dockerの設定を変更してリモートアクセスを有効にする

$ vi /usr/lib/systemd/system/docker.service

ExecStart で始まる対応する行を見つけて、次の内容に変更し、先ほどの証明書情報を導入し、接続にポート 2376 を使用します。サーバーが Alibaba Cloud または Tencent Cloud の場合、このポートはファイアウォールで開く必要があります。

Dockerを再起動します。

$ systemctlデーモンリロード
$ systemctl dockerを再起動します

3. アイデアを使って接続をテストする

idea に docker プラグインをインストールします。この手順はここでは繰り返しません。次に、図に示すように関連情報を入力します。証明書情報は、サーバーからコピーした 3 つのファイルです。保存したディレクトリを選択します。以下のプロンプトが表示されたら、接続が成功したことを意味します。

リモートで Docker サーバーに正常に接続したら、独自のプロジェクトをミラー化し、サーバー k8s にデプロイできます。

リモート Docker サーバー証明書接続の実装方法についてはこれで終わりです。関連する Docker リモート接続証明書コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker は 2003 年の問題を解決するために MySQL リモート接続を導入しました
  • Docker で MySQL をインストールし、リモート接続を実装するチュートリアル
  • IDEA で Spring Boot プロジェクトをデプロイするためにリモート サーバー Docker に接続する方法の詳細なチュートリアル
  • portainer を使用してリモート docker に接続するチュートリアル
  • Docker はリモート接続のサンプルコードを実現するために MySQL をデプロイします
  • dockerデーモンのリモート接続設定の詳しい説明

<<:  CSSにおけるマージン値と垂直マージンの重なりについて

>>:  XMLとCSSスタイルの組み合わせ

推薦する

HTMLは実際にはいくつかの重要なタグを学ぶアプリケーションです

「これは革命になるだろう」という記事が出たあと。業界の皆様に認知され、もちろん内外からの評価もいただ...

CSS+SVGでBステーションの課金効果を実現するサンプルコード

困難SVG グラフィックの 2 つのマスクの作成まず、コード左側のピンク色のボックスの内容ですこれに...

IIS7 IIS8 リバースプロキシルールの記述、インストール、構成方法

目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...

MySQL インデックスのクイックガイド

MySQL インデックスの確立は、MySQL の効率的な操作にとって非常に重要です。インデックスによ...

Mac に MySQL データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル

目次MySQLをインストールする環境変数の設定MySQLをインストールするmysqlをダウンロードし...

Ubuntu 18.04 MySQL 8.0 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0のインストールと設定方法を参考までに紹介します。具体的な内容は以下の...

mysql8.0.11 winx64 手動インストールと設定チュートリアル

まず、私の日常生活についてお話しします。MySQLの急速なアップデートにより、MySQLはバージョン...

HTML 編集の基礎 (初心者必読)

DREAMWEAVER を開き、新しい HTML を作成します。 。ボディの特性: bgcolor...

Vueはシンプルな虫眼鏡効果を実装します

この記事では、参考までに、簡単な虫眼鏡効果を実現するためのVueの具体的なコードを紹介します。具体的...

Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Docker はコンテナに相当し、必要な動作環境に応じて対応する動作環境を構築できます。このとき、各...

MySQL の pid とソケットの詳細な説明

目次1. pidファイルの紹介2.ソケットファイルの紹介要約:ソケット ファイル: Unix ドメイ...

入力選択スタイルを変更する CSS 疑似クラスのサンプルコード

注: この表はW3Schoolチュートリアルから引用したものです疑似要素の分類と機能: 入力選択スタ...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

動的および静的分離を実現する nginx のサンプルコード

1. nginxの動的と静的の分離の簡単な設定web1は静的サーバー、web2は動的サーバー、nod...

Alibaba Cloud ECS クラウド サーバー (Linux システム) は、MySQL をインストールした後にリモートで接続できません (落とし穴)

昨日、1年間使用していた Alibaba Cloud サーバーを購入しました。システムは Linux...