1.ポートではないマッピングに、コンテナnginxの作成
[ルート@ localhostの〜] RUN#ドッカー--name my_nginx - D nginxの
7be3673a4c0f8f7ffe79a7b11ab86c4327dacaf734ed574e88e28c1db2243716
[ルート@ localhostの〜]#ドッカーPS - #80は、コンテナポートがホストにマッピングされた有効ではなく、見ることができます
CONTAINER IDイメージコマンドNAMES CREATED STATUSポート
nginxの7be3673a4c0f " nginxの-g」...デーモン" 。5秒前メンバー最大4秒 80 / TCPのmy_nginx
2.容器を得るネットワーク情報
[ルート@ localhostの〜]#ドッカーExecの-it my_nginx / binに/ bashの #nginxのは、コンテナが非常に簡単でシェルコマンドのない多くを見ることができ、あなたは私たちがしたい情報の一部を表示することはできません
。7be3673a4c0f @ルート / #のIP
bashの:IPを:コマンドが見つからない
ルートの@ 7be3673a4c0f: / #ifconfigコマンドの
bashの:ifconfigコマンド:コマンドが見つからない
ルート@ localhostの〜]#ドッカーネットワークはブリッジ検査 #私たちはどのようなネットワーク情報を通じて見て調べることができます
「コンテナ」:{
「7be3673a4c0f8f7ffe79a7b11ab86c4327dacaf734ed574e88e28c1db2243716 」:{
「の名前を」:" my_nginx " 、
" EndpointID ":" 6fa4eedf32d4a9d75b591d102613944d49a3cd40d2e41ea6c386685584fd09a7 " 、
" のMacAddress ":" 02:42:AC:11:00:02 " 、
" IPv4Addressを":" 172.17.0.2/16 " 、 #容器的IP地址
" IPv6Address ":""
}
}、
ホストのIPアドレスとポートコンテナ経由3.アクセスを
[ルート@ localhostの〜]#ピング172.17。0.2 #可以ピング通の
PING 172.17。0.2(172.17。0.2)56(84 データの)バイト。
64バイトから 172.17。0.2:icmp_seq = 1 TTL = 64時間= 0.073 MS
[ルート@ localhostの〜]#のTelnetの172.17。0.2 80 #Telnet 80端口正常
しよう172.17を。0.2 ...
に接続172.17。0.2 。
エスケープ文字はIS ' ^] ' 。
[ルート@ localhostの〜]#カール-I 172.17。0.2 #nginxの血管アクセスポート80ノーマル
HTTP / 1.1 200 OK
概要:あなたはホストからアクセスできるデフォルトのコンテナサービスポートを作成した場合、外はアクセスできません。
4.ポートマッピングパラメータを開始することにより、コンテナを作成します-p
[ルート@ localhostの〜]#ドッカーRM - Fのmy_nginx
[ルート@ localhostの〜] RUN#ドッカー--name my_nginx -d -p 80:80個の nginxの #1 -pパラメータ指摘書式
f1166a72ab910b425cf32b91ababde2a5b6a4fda6db08852bf7a99d925d4985f
[ルート@ localhostの〜] PS#ドッカー- ここで#ルールがマッピングされた ホストは、すべてのインターフェイスからのトラフィックを受け入れることを意味します。ユーザーことができます または より厳格なルールを導入するようにIP、インターフェースやコンテナへのホストアクセスの上を指定することが許される
コンテナIDポートをSTATUSはIMAGEはコマンド名CREATED
nginxのf1166a72ab91 「nginxの-g」...デーモンを」3秒前メンバーまで。30.0.0.0
-p IP:host_port:container_port
-p IP::port
秒 0.0。0.0:80 - > 80 / TCPのmy_nginx
あなたは永久に固定IPアドレスにバインドする場合は、プロファイルドッキングウィンドウができ /etc/docker/daemon.json
、次の内容を追加します。
{
" IP ":" 0.0.0.0 "
}
ホストIPアドレスによるアクセス(注意ポート)
[ルート@ localhostのは〜]#ifconfigコマンドeth0を| awkの' NR == 2は、{$ 2を印刷} '
172.16。150.135
5.ポートマッピングパラメータを開始することにより、コンテナを作成します。-P
[ルート@ localhostの〜]#ドッキングウィンドウRM - F my_nginx
my_nginx
[ルート@ localhostの〜]#は--name my_nginx -d実行ドッカ- P nginxの#-P直接使用、不需要指定端口
8f9df2a803766862d08709b77054d35e890ca72c0ea17770dac8b3815278d35b
[ルート@ localhostの〜を]#ドッキングウィンドウPS -
コンテナID IMAGEコマンドCREATED STATUSポートNAMES
8f9df2a80376 nginxの " nginxの-g「デーモン... " 5秒前まで5秒 0.0。0.0:10000 - > 80 / TCPのmy_nginx
外部アクセス(ノートポート)
使用および6-Pおよび差分パラメータ-p
公式ドキュメントドキュメント:
-P、--publish-すべて= 真 | 偽のは
、ホストインターフェース上でランダムなポートへのすべての露出のポートを公開します。デフォルトは ある 偽。
ときに設定するには、真のホストインターフェイスにすべての露出のポートを公開します。デフォルトは ある 偽。場合は、オペレータが -P(または-使用していますp)を、その後ドッカーを行います
ホスト上の露出したポートがアクセス可能で、ポートがホストに到達することができます任意のクライアントが利用できるようになります。ときに使用 - Pを、ドッカーは、任意の露出し結合する
ことによって定義されるエフェメラルポートの範囲内のホスト上のランダムなポートにポートを/ proc / sys / net / IPv4の/ ip_local_port_range。ホスト間のマッピング確認するには
、ポートおよび露出したポートを、ドッカポートを使用します。
-p、--publish = []
コンテナ公開」ホストへのポートまたはポートの範囲を、。
フォーマット:IP:HOSTPORT:containerPort | IP :: containerPort | HOSTPORT:containerPort | containerPort HOSTPORTとcontainerPort両方が指定できるように
ポートの範囲。範囲を指定する場合のために、両方の容器ポートの数における範囲は、ホストポートの数と一致しなければならないで範囲。(例えば、
ドッキングウィンドウの実行 -p 1234 - 1236:1222 - 1224 --name thisWorks -t busyboxのではなくは-pを実行ドッカー1230 - 1236:1230 - 1240 - 名RangeContainerPortsBiggerThanRangeHost-
ポートの IPアドレスを持つ-tのbusybox):ドッキングウィンドウの実行-p 127.0。0.1:$ HOSTPORT:$のCONTAINERPORTの--nameコンテナ- トンのsomeimageの使用ドッキングウィンドウのポートは、実際のマッピングを表示するには:
ドッカポートコンテナの$ CONTAINERPORT
-P:
ランダムポートマッピングコンテナポート範囲を介してホスト上のランダムなポートを、有効には、/ proc / sys / net / IPv4の/ ip_local_port_rangeのの取得設定
[localhostのルート@#のCATは、/ proc / sys / net / IPv4の/〜] ip_local_port_rangeの
10000 65000を
-p:
あなたは、指定されたポートは、コンテナにバインドすることができる唯一の上、マッピングするポートを指定し、することができます。
ポートマッピングフォーマットがサポートされています:IP:のHostPort:IPを指定containerport番号を、ホストポートを指定し、指定されたコンテナポート IPを:: IPを指定containerport番号、ホストポートを指定するコンテナポートを指定していなかった のHostPort:コンテナ番号未指定のIPポートを、ホストを指定ポート、指定ポートの容器繰り返し使用
-pマーカーは複数のポートを結合することができ、例えば、 -p 00:80 -p 8088:8080
の範囲を指定することができ、例えば、 1222年から1224年:1234年から1236年-p
かかわらず、道のような、それがローカルに実際にある iptable
natテーブルの対応するルールを追加します。
使用 -p 80:80
する場合:
[ルート@ localhostの〜]#iptablesの-t NAT -vnL |グレップ:80
0 0 MASQUERADEのTCP - * * 172.17。0.2 172.17。0.2 TCPのDPT:80
0 0 DNATのTCP - docker0 *! 0.0。0.0 / 0 0.0。0.0 / 0 DPT TCP:80まで:172.17。0.2:80
使用 -P
する場合:
[ルート@ localhostの〜]#iptablesの-t NAT -vnL |グレップ:80
0 0 MASQUERADEのTCP - * * 172.17。0.2 172.17。0.2 TCPのDPT:80
0 0 DNATのTCP - docker0 *! 0.0。0.0 / 0 0.0。0.0 / 0 のTCP DPT:10000へ:172.17。0.2:80