Dockerでリモートアクセスを有効にする方法

Dockerでリモートアクセスを有効にする方法

Dockerデーモンソケット

Docker デーモンは、 unixtcpfdの 3 種類のソケットを介して Docker Engine API リクエストをリッスンできます。

デフォルトでは、 unixドメイン ソケット (または IPC ソケット) が/var/run/docker.sockに作成されます。これには、 root権限またはdockerグループのメンバーシップが必要です。

Docker デーモンにリモートでアクセスする必要がある場合は、 tcpソケットを有効にする必要があります。デフォルト設定では、Docker デーモンへの暗号化されていない認証されていない直接アクセスが提供されるため、組み込みの HTTPS 暗号化ソケットを使用するか、その前に安全なwebプロキシを配置して保護する必要があります。 -H tcp://0.0.0.0:2375を使用してすべてのネットワーク インターフェイスのポート2375をリッスンするか、 -H tcp://ip:2375使用して IP アドレスを使用して特定のネットワーク インターフェイスのポート2375をリッスンすることができます。通常、デーモンとの暗号化されていない通信にはポート2375使用し、デーモンとの暗号化された通信にはポート2376使用します。

: HTTPS 暗号化ソケットを使用している場合は、 TLS1.0以上のみがサポートされていることに注意してください。セキュリティ上の理由から、 SSLv3以下はサポートされなくなりました。

docker.service を変更する

vim /usr/lib/systemd/system/docker.service

[Service]セクションで、 ExecStartパラメータを変更し、最後に-H tcp://0.0.0.0:2375を追加して、すべてのネットワーク インターフェイスでポート2375をリッスンします。

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375

ここに画像の説明を挿入

設定ファイルを再読み込みしてサービスを開始します

systemctl デーモンをリロード && systemctl docker を再起動します
  • daemon-reload : サービス設定ファイルを再読み込みします。サービス設定ファイルが変更された場合は、再読み込みする必要があります。
  • restart : サービスを再起動します。

dockerdプロセスがポート2375でリッスンしているかどうかを確認します。

[root@izoq008ryseuupz ~]# netstat -antp | grep dockerd
tcp6 0 0 :::2375 :::* 22494/dockerdを聴く    

netstatコマンドは、ネットワークの状態を表示するために使用されます。一部のオプションには次の機能があります。

  • -aまたは--all : 接続されているすべてのソケットを表示します。
  • -nまたは--numeric : ドメイン ネーム サーバーを経由せずに IP アドレスを直接使用します。
  • -tまたは--tcp : TCP 送信プロトコルの接続ステータスを表示します。
  • -pまたは--programs : ソケットを使用しているプログラム識別コードとプログラム名を表示します。

テスト

次に、 localhost経由で Docker Engine API を使用できるかどうかをテストします。

[root@izoq008ryseuupz ~]# curl http://localhost:2375/version
{"Platform":{"name": "dockerエンジン - コミュニティ"}、 "コンポーネント":[{"name": "engine"、 "version": "19.03.13"、 "details":{"apiversion": "1.40"、 "arch": "amd64"、 "buildtime": "2020-09-16t17:02:02:02:000 000 "、" gitcommit ":" 4484c46d9d "、" goversion ":" go1.13.15 "、" kernelversion ":" 3.10.0-514.26.2.el7.x86_64詳細 ":{" gitcommit ":" 8fba4e9a7d01810a393d5d25a3621dc101981175 "}}、{" name ":" runc "、" 1.0.0-rc10 "、" 6df0a9dd "}}、{" name ":" docker-init "、" version ":" 0.18.0 "、" details ":{" gitcommit ":" fec3683 "}}]、"}、 ":" 19.03.13 "、" apiversion ":" 1.40 ":" "1.40" "" 1.40 9d "、" goversion ":" go1.13.15 "、" os ":" linux "、" arch ":" amd64 "、" kernelversion ":" 3.10.0-514.26.2.el7.x86_64 "、" buildtime ":" 2020-09-16t17:02:21.0000000+00 "

curl 、Web サーバーにリクエストするためによく使用されるコマンドライン ツールです。パラメータがない場合、 curl GET リクエストを作成します。

どうやら Docker Engine API はlocalhost経由で利用できるようです。

ホストIP経由でDocker Engine APIがリモートから使えるかテストしてみます。http http://ip:2375/versionリクエストして取得したページが下図の通りです。明らかに使えます。

ここに画像の説明を挿入

IDEAはリモート接続も可能です。

ここに画像の説明を挿入

起こりうる問題

リモートアクセスできない場合は、サーバーのファイアウォールの設定が必要かもしれません。ポート2375が公開されていないため、リモートアクセスができないのが原因のはずです。ブロガーのサーバーはAlibaba Cloud( Centos7.3 )です。

ここに画像の説明を挿入

Docker のリモート アクセスを有効にする方法については、これで終わりです。Docker リモート アクセスの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • DockerコンテナはホストのMySQL操作にアクセスする
  • Docker コンテナのカスタム ホストのネットワーク アクセス操作
  • Docker ポート マッピングと外部アクセス不可の問題
  • DockerコンテナがJupyterにアクセスできない問題の解決策
  • Dockerモードで起動したTomcatのホームページにアクセスすると404エラーが発生する
  • Docker イメージのローカル Elasticsearch ポート操作へのアクセス
  • 突然外部ネットワークからDockerにアクセスできなくなる問題の解決方法

<<:  フロントエンドJavaScriptの動作原理

>>:  HTML チュートリアル: よく使われる HTML タグのコレクション (4)

推薦する

Dockerfile テキストファイルの使用例の分析

Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...

JavaScript の instanceof メソッドの手動実装

1. instanceofの使用法instanceof演算子は、コンストラクター関数のprototy...

mysql8.x docker リモートアクセスの詳細な設定

目次環境条件エラーが発生しました回避策1. mysql dockerにログインする2. ルートパスワ...

検索データ表示を実装するJavaScript

この記事ではJavaScript検索のデータ表示コードを参考までに共有します。具体的な内容は以下のと...

React-Native環境のセットアップと基本的な紹介

環境の準備1. 環境構築React Native 中国語ウェブサイト2. 開発ツール フロントエンド...

CSSレイアウトにおけるフロート属性と位置属性の違い

CSS レイアウト - position プロパティposition 属性は、要素に適用する配置方法...

Vue3は画像拡大鏡効果を実現します

この記事の例では、画像拡大鏡効果を実現するためのVue3の具体的なコードを参考までに共有しています。...

CSSプロパティに基づいたボタンホバーボーダーと背景アニメーションのコレクション

ハートの属性不透明度: .999 は要素のスタッキングコンテキストを作成し、ボタン6と8のアニメーシ...

シンプルなビデオ連射機能を実装する JavaScript CSS3

この記事では、最も単純なビデオ連射機能をシミュレートするデモを作成します。アイデア:再生する動画と同...

Bootstrap 3.0 の特殊効果の学習ノート(表示と非表示、フローティングの除去、閉じるボタンなど)

この記事の主な内容は次のとおりです。 1. 閉じるボタン2.キャレット3. フローティングを素早く設...

Vue ベースの要素ボタン権限実装ソリューション

背景要件: ERP システムに「ボタン権限制御」機能を追加する必要があり、権限の制御粒度をボタン レ...

ウェブページのコアコンテンツ(画像とテキスト)の視覚的表現の紹介

情報の最適化と改良は常にデザインの最初のステップです。 「これは百度アライアンスユーザーエクスペリエ...

ウェブサイトのユーザビリティを向上させる10のヒント

企業の Web サイト、個人のブログ、ショッピング Web サイト、ゲーム Web サイトなど、どの...

CSS3 3Dクールキューブ変形アニメーションの実装

私はコーディングが大好きです。コーディングすると幸せになります!みなさんこんにちは、Counterで...

Vue-CLI マルチページディレクトリパッケージ化手順の記録

ページディレクトリ構造 デフォルトの HTML テンプレート ファイル public/index.h...