簡単な紹介
インターネットアプリケーションサービスの多くは、多くの場合、複数の容器の間のネットワーク通信を介して相互に協力する必要があるサービス・コンポーネントの複数を含みます。
ドッカーは現在、コンテナとコンテナのためのネットワークサービスを提供するために、ホストのホストの相互接続メカニズムへのコンテナ港のマップを提供しています。
この記事では、ドッカーネットワーク機能を使用する方法について説明します。だけでなく、相互接続されたシステムを使用すると、複数のコンテナ間の高速ネットワーク通信を実行させるのコンテナを介して外部ネットワークへのコンテナアプリケーションサービスプロバイダへのポートマッピングメカニズムの使用を含みます。
アクセスを達成するためのコンテナのポートマッピング
外部からコンテナアプリケーションアクセス
コンテナが起動すると、あなたが外容器内の対応するパラメータを指定しない場合、ネットワークを介して容器内のネットワークアプリケーションやサービスにアクセスすることができません。
いくつかのネットワークアプリケーションでは、外部からのアクセスにそれらをできるように、コンテナで実行しているときは、ポートマッピングまたは-P -pパラメータで指定することができます。-Pフラグを使用すると、ドッカーは、ランダムネットワークのコンテナ港の内部に開放49000〜49900ポートのマッピング:
[ルート@ギャビン〜]#sudoのドッキングウィンドウ-d実行- Pのtomcat:最新 afe8064a2e604ebd212ec2a620fde7d0c2f72b51d298066f3e4c454df1b74e6e [ルート@ギャビン〜]#sudoのドッキングウィンドウのPS - コンテナID IMAGEコマンドが作成STATUSポートの名称 afe8064a2e60のtomcat:最新の " catalina.shラン" 13秒前最大12秒 0.0。0.0:32769 - > 8080 / tcpのfestive_panini
この場合、ドッカーPSの使用は、ローカルホスト32769は、容器のポート8080にマッピングされ、見ることができます。
アプリケーションが提供するコンテナ内のWebインターフェイスにアクセスするためのアクセスホストホストポート32769。
また、あなたは、ドッキングウィンドウのログコマンドによってアプリケーションに関する情報を表示できます。
[ルート@ギャビン〜]#sudoのドッキングウィンドウのログafe8 28 -Aug- 2019 14:18:27.546 INFO [メイン] org.apache.catalina.startup.VersionLoggerListener.log Serverバージョン:Apache Tomcatの/ 8.5。45 28 -Aug- 2019 14:18:27.548内蔵org.apache.catalina.startup.VersionLoggerListener.logサーバINFO [メイン]日:Aug 14 2019 22:21:25 UTC 28 -Aug- 2019 14:18:27.548をINFO [メイン] org.apache.catalina.startup.VersionLoggerListener.logサーバーの数: 8.5。45.0 28 -Aug- 2019 14:18:27.549 INFO [メイン] org.apache.catalina.startup.VersionLoggerListener.log OS名:Linuxの 28 -Aug- 2019 14:18:27.549 INFO [メイン] org.apache.catalina。 startup.VersionLoggerListener.log OSバージョン: 3.10。0 - 957 .el7.x86_64 ...
-p(小文字)は、指定されたポートは、容器に結合することができるだけで、指定されたポートにマッピングされ、そしてすることができます。ホスト側:containerPortリットルのIP :: containerPort I HOSTPORT:containerPortサポートするフォーマットは、IPです。
すべてのマッピングインターフェイスアドレス
使用HOSTPORT:容器8080のポート8080にマッピングcontainerPortローカルフォーマットは、次のコマンドを実行することができます。
[ルートの@ギャビン〜]#sudoのドッキングウィンドウの実行は、-p -d 8080:8080 :tomcatの最新 b7b692ed0bc99bf73f68b92ddca20a1ae5ab510c42ae234f76a4b36093e1fd31 [ルート@ギャビン - 〜]#sudoのドッキングウィンドウのPS STATUSポートの名称作成したコンテナのID画像COMMAND 最新:b7b692ed0bc9 Tomcatの 「catalina.shの実行を「9秒前に最大8秒 0.0。0.0:8080 - > 8080 / TCPのtender_wescoff
このとき、デフォルトではすべてのインターフェイス上のすべてのローカルアドレスをバインドします。複数の利用-pマークは、複数のポートをバインドすることができます。
例えば:
[ルートの@ギャビン〜]#sudoのドッキングウィンドウの実行は、-p -d 8088:8088 -p 8099:8099 :Tomcatの最新 c1629208e59a8953369b2229de6c352ae83faa00154c7acdb5178931e84bedce [ルート@ギャビン - 〜]#sudoのドッキングウィンドウのPS STATUSポートの名称作成したコンテナのID画像COMMAND 最新:c1629208e59a Tomcatを 「catalina.shラン」6アップ秒前に5秒 0.0。0.0:8088 - > 8088 / TCP、 8080 / TCP、0.0。0.0:8099 - > 8099 / TCPのnervous_robinson
指定されたポート指定されたアドレスにマッピングされました
あなたは、IPを使用することができます。HOSTPORT:など私のIPなどの特定のアドレスを使用して、containerPort形式指定されたマップは192.168.1.16です。
[ルート@ギャビン〜]#sudoのドッキングウィンドウの実行-d -p 192.168。1.16:8081:8080 のtomcat:最新 7f5eab8748fe3fcb0ffd3b2828928be05f8193d88ff80d2f88aee9ae262f6114 [ルート@ギャビン〜]#sudoのドッキングウィンドウのPS - 作成したコンテナのIDのIMAGEコマンドがステータスポートNAMES 7f5eab8748feのtomcat:最新の " catalina.shラン" 10秒前まで9秒 192.168。1.16:8081 - > 8080 / TCPのstoic_robinson
ポートは、任意の指定されたアドレスにマッピングされました
どれでも使用192.168.1.16のIPポート8080へのコンテナ港を結合:: containerPortは、ローカルホストが自動的にポートを割り当てます。
[ルート@ギャビン〜]#sudoのドッキングウィンドウの実行-d -p 192.168。1.16 :: 8080 のtomcat:最新 8108af81e853076df2a55d125b559476422df4d16c4560afd6439f51cb67bcfc [ルートの@ギャビン〜]#sudoのドッキングウィンドウのPS - 作成したコンテナのID画像COMMAND STATUSポートの名称 8108af81e853のtomcat:最新の " catalina.shの実行" 7秒前に最大6秒 192.168。1.16:32768 - > 8080 / TCPのinspiring_zhukovsky
地図を見るのポート設定
現在のポート設定のマッピングを表示するドッカポートを使用して、あなたはまた、アドレスバインディングを表示することができます。
[ルート@ギャビン〜]#sudoのドッキングウィンドウポート8108 8080 / TCP - > 192.168。1.16:32768
コンテナは、コンテナ間の通信を介してリンク
コンテナ(リンク)システムを接続するポート・マッピング・アプリケーションに加えて、容器と相互作用することができる別の方法です。
それはソースと収納容器との間のトンネルを作成し、容器は、指定された情報源容器を見ることができます。
カスタム名前付けコンテナ
コンテナの名前に応じて実行するようにシステムを接続します。だから、最初のあなたはキャッチーな名前にコンテナをカスタマイズする必要があります。
コンテナが作成されたときが、システムはデフォルトの名前を割り当てますが、カスタムの名前付けコンテナは、2つの利点があります。
- そのようなWebアプリケーションコンテナとして、覚えて、比較的容易に定義されたネーミングので、我々はそれに名前ウェブを与えることができます。
- 別の容器に接続されたとき、それは、Web DB容器に接続された容器として、有用な基準点として働くことができます。
--nameタグ名を使用してコンテナをカスタマイズすることができます。
[ルート@ギャビン〜]#sudoのドッキングウィンドウ-d -P実行- 名前のWeb Tomcatを:最新
47a03555a3aa0c4581df781f906baaa0e3c0b8fcc1ebc5764ad94eb0c14716a8を
名前付きセットすることを確認するために、ドッカpsを使用します
[ルート@ギャビン〜]#sudoのドッキングウィンドウのPS - 作成したコンテナのIDのIMAGEコマンドがステータスポートNAMES 47a03555a3aaのtomcat:最新の " catalina.shラン" 46秒前に最大45秒 0.0。0.0:32770 - > 8080 / tcpのウェブ
相互接続コンテナ
--linkを使用したパラメータは、コンテナ間の安全な相互作用を可能にします。
以下は、新しいデータベースコンテナを作成します。
[ルート@ギャビンは〜]#sudoのドッキングウィンドウは、-d --nameデシベルのpostgresの実行します
以前に作成したWebコンテナを削除します。
[ルート@ギャビン〜]#sudoのドッキングウィンドウのrm -fウェブ
次に、新しいWebコンテナを作成し、DBコンテナにそれを接続します。
[ルート@ギャビン〜]#sudoのドッキングウィンドウの実行-d -P --nameウェブ--linkデシベル:デシベルのtomcat:最新
インターネット関係のこの時点で、DBコンテナとWebコンテナの作成。
--linkフォーマットパラメータは--link名である:名前がリンクされるコンテナの名前である別名、エイリアスは、この接続の別名です。
コンテナの接続のドッキングウィンドウのPSビューを使用します。
[ルート@ギャビン〜]#sudoのドッキングウィンドウのPS STATUSポートの名称作成したコンテナのID画像COMMAND 最新:ea74df6bc843 Tomcatの " catalina.shラン" 2分、前の2分の 0.0。0.0:32774 - > 8080 / tcpのウェブ 44c6d026afe2はpostgres " ドッキングウィンドウ-entrypoint.s ... " 3分前まで3分の 5432/ TCPのデシベル
Webコンテナのpingデシベルコンテナに移動します:
[ルート@ギャビン〜]#の須藤ドッカーEXEC -tiウェブ/ binに/ のbash 根ea74df6bc843 @:は/ usr / local / Tomcatの#ピングDB PINGデシベル(172.17。0.7)、56(84 データの)バイト。 64バイトから DB(172.17。0.7):icmp_seq = 1 TTL = 64時間= 0.299 秒 64バイトから DB(172.17。0.7):icmp_seq = 2 TTL = 64時間= 0.105 秒 64のバイトDB(172.17。0.7):icmp_seq = 3 TTL = 64時間= 0.067秒
あなたは、Webコンテナは、DBコンテナへのアクセス権を持って見ることができます。
相互接続された2つのコンテナ間ドッカーは、安全なトンネルを作成し、ホストのホストポートにマッピングしないでください。-Pは、ブート時に使用し、-Pは、このように外部ネットワークポート上のデータベースへの露出を避け、DBコンテナをラベル付けされていません。
Webコンテナ環境変数を表示するには、envコマンドを使用して、パブリケーションドッカー接続情報環境変数を参照してください。
[ルート@ギャビン〜]#sudoのドッキングウィンドウ--name WEB2実行- リンクDB:DBのtomcat:最新ENV ... DB_PORT = TCP:// 172.17.0.7:5432 DB_PORT_5432_TCP = TCP:// 172.17.0.7:5432 DB_PORT_5432_TCP_ADDRを= 172.17。0.7 DB_PORT_5432_TCP_PORT = 5432 DB_PORT_5432_TCP_PROTO = TCP DB_NAME = / WEB2 / DB DB_ENV_GOSU_VERSION = 1.11 DB_ENV_LANG = en_US.utf8の DB_ENV_PG_MAJOR = 11 DB_ENV_PG_VERSION = 11.5 - 1 .pgdg90 + 1 DB_ENV_PGDATA = / VAR / libに/ postgresqlの/ データ ...
前記DBは、Web DBコンテナのコンテナに接続されている環境変数の先頭は大文字の接続エイリアスを付けます。
ユーザは、ウェブDBコンテナの複数に連結され得るように、親血管にサブコンテナの複数をリンクすることができます。
この記事では、私の記録ドッカー学習、「ドッカー技術の導入や実用的な」からのコンテンツの参照であります