コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク スタックを共有するため、2 つのコンテナは localhost を使用して効率的かつ迅速に通信できます。 Web サーバーとアプリケーション サーバー間の通信に使用されます。 ## 実験環境をクリアする[root@server1 ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 ## デフォルトネットワーク [root@server1 ~] でコンテナを作成# docker run -it --name vm1 ubuntu root@b1a2a90f98a5:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状態 UNKNOWN グループ デフォルト qlen 1 リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 スコープ ホスト lo valid_lft 永久 preferred_lft 永久 368: eth0@if369: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 状態 UP グループ デフォルト リンク/イーサ 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 root@b1a2a90f98a5:/# [root@server1 ~]# ##コンテナはvm1とネットワークを共有するvm2を作成します [root@server1 ~]# docker run -it --name vm2 --network コンテナ:vm1 ubuntu root@b1a2a90f98a5:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状態 UNKNOWN グループ デフォルト qlen 1 リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 スコープ ホスト lo valid_lft 永久 preferred_lft 永久 368: eth0@if369: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 状態 UP グループ デフォルト リンク/イーサ 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 ルート@b1a2a90f98a5:/# 2.--リンク方式## イメージをクリア [root@server1 ~]# docker rm -f vm1 仮想マシン1 [root@server1 ~]# docker rm -f vm2 仮想マシン2 [root@server1 ~]# docker ps -a コンテナID イメージ コマンド 作成ステータス ポート名 ##デフォルトネットワークはvm1を作成します [root@server1 ~]# docker run -it --name vm1 ubuntu root@68e56c57a9a0:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状態 UNKNOWN グループ デフォルト qlen 1 リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 スコープ ホスト lo valid_lft 永久 preferred_lft 永久 370: eth0@if371: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 状態 UP グループ デフォルト リンク/イーサ 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff inet 172.17.0.2/16 brd 172.17.255.255 スコープ グローバル eth0 valid_lft 永久 preferred_lft 永久 root@68e56c57a9a0:/# [root@server1 ~]# ##--vm1 サブネットのコンテナ vm2 を作成するためのリンク メソッド [root@server1 ~]# docker run -it --name vm2 --link vm1:web ubuntu root@61267851b484:/# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue 状態 UNKNOWN グループ デフォルト qlen 1 リンク/ループバック 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 スコープ ホスト lo valid_lft 永久 preferred_lft 永久 372: eth0@if373: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 状態 UP グループ デフォルト リンク/イーサ 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0 ##ip は vm1 と同じネットワークセグメントにあり、valid_lft は永久に増加し、preferred_lft は永久に増加します ##vm1 の IP とエイリアス情報を含むファイルを解析します。root@61267851b484:/# cat /etc/hosts 127.0.0.1 ローカルホスト ::1 ローカルホスト ip6-ローカルホスト ip6-ループバック fe00::0 ip6-ローカルネット ff00::0 ip6-mcastプレフィックス ff02::1 ip6-全ノード ff02::2 ip6-オールルーター 172.17.0.2 ウェブ 68e56c57a9a0 vm1 172.17.0.3 61267851b484 ルート@61267851b484:/# ^C ルート@61267851b484:/# - リンクホストファイルを更新する リンクコンテナの変数もコピーされます ルート@61267851b484:/#env ホスト名=61267851b484 TERM=xterm LS_COLORS = RS = 0:DI = 01; 34:LN = 01; 36; 36:MH = 00:PI = 40; 33:SO = 01; 35:DO = 01; 35:BD = 40; 33; 01:CD = 40; 33; 01:OR = 40; 31; 01 4; 42:st = 37; 44:ex = 01; 32:*。tar = 01; 31; 31:*。tgz= 01; 31:*。arj = 01; 31:*。taz = 01; 31:*。lzh = 01; 31:*。lzma = 01; 31:* ; 31:*。Z = 01; 31:*。dz= 01; 31:*。gz= 01; 31:*。lz = 01; 31:*。xz = 01; 31:*。bz2 = 01; 31:*。bz= 01; 31:* ; 31:*。jar = 01; 31:*。war = 01; 31:*。ear = 01; 31:*。sar = 01; 31:*。rar = 01; 31:*。ace = 01; 31:*。zoo = 01; 31:*。cpio = 01; 31:* 5:*。gif = 01; 35:*。bmp = 01; 35:*。pbm= 01; 35:*。pgm = 01; 35:*。ppm = 01; 35:*。tga = 01; 35:*。xbm = 01; 35:* ng = 01; 35:*。svg = 01; 35:*。svgz = 01; 35:*。mng = 01; 35:*。pcx= 01; 35:*。mov = 01; 35:*。mpg= 01; 35:*。mpeg = 01; 35:*。m2v= 01; 35: ; 35:*。ogm = 01; 35:*。mp4 = 01; 35:*。m4v= 01; 35:*。mp4v = 01; 35:*。vob = 01; 35:*。qt = 01; 35:*。nuv = 01; 35:*。 .rmvb = 01; 35:*。flc = 01; 35:*。avi = 01; 35:*。fli = 01; 35:*。flv= 01; 35:*。gl = 01; 35:*。dl= 01; 35:*。xcf = 01; 35:* ; 35:*。emf = 01; 35:*。axv = 01; 35:*。ann an an anx = 01; 35: = 00; 36:*。mpc = 00; 36:*。ogg = 00; 36:*。ra = 00; 36:*。wav = 00; 36:*。axa = 00; 36:*。oga = 00; 36:*。spx = 00; 36:*。xspf = 00; 36:*。 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 障害者=/ SHLVL=1 HOME=/ルート WEB_NAME=/vm2/web LESSOPEN=| /usr/bin/lesspipe %s LESSCLOSE=/usr/bin/lesspipe %s %s _=/usr/bin/env ルート@61267851b484:/# コンテナを停止すると、IP アドレスが解放されます。再度起動すると、別の IP アドレスが取得されます。リンクされたコンテナは、hosts ファイルを自動的に更新します。 コンテナと外部ネットワーク間の通信現在の iptable nat テーブル ファイアウォール ポリシーを表示する [root@server1 ~]# iptables -t nat -nL チェーン PREROUTING (ポリシー ACCEPT) ターゲット 利益 選択 ソース 宛先 DOCKER すべて -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE は dst-type LOCAL と一致する チェーン入力(ポリシーACCEPT) ターゲット 利益 選択 ソース 宛先 チェーン出力(ポリシーACCEPT) ターゲット 利益 選択 ソース 宛先 DOCKER すべて -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE は dst-type LOCAL と一致する チェーン POSTROUTING (ポリシー ACCEPT) ターゲット 利益 選択 ソース 宛先 すべてをマスカレード -- 172.26.0.0/24 0.0.0.0/0 すべてをマスカレード -- 172.20.0.0/16 0.0.0.0/0 すべてをマスカレード -- 172.18.0.0/16 0.0.0.0/0 すべてをマスカレード -- 172.17.0.0/16 0.0.0.0/0 チェーン DOCKER (2 件の参照) ターゲット 利益 選択 ソース 宛先 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 ## nginxコンテナを作成し、ポート[root@server1 ~]をマップします# docker run -d --name nginx -p 80:80 nginx cfefe6420cfe60c46cb7a050c142af7eff86fa6d687c3577077a5b4e2c8b961c ##ポート80を開く [root@server1 ~]# docker port nginx 80/tcp -> 0.0.0.0:80 [root@server1 ~]# netstat -antlp | grep 80 tcp6 0 0 :::80 :::* 27094/docker-proxyを聴く [root@server1 ~]# iptables -t nat -nL チェーン PREROUTING (ポリシー ACCEPT) ターゲット 利益 選択 ソース 宛先 DOCKER すべて -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE は dst-type LOCAL と一致する チェーン入力(ポリシーACCEPT) ターゲット 利益 選択 ソース 宛先 チェーン出力(ポリシーACCEPT) ターゲット 利益 選択 ソース 宛先 DOCKER すべて -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE は dst-type LOCAL と一致する チェーン POSTROUTING (ポリシー ACCEPT) ターゲット 利益 選択 ソース 宛先 すべてをマスカレード -- 172.26.0.0/24 0.0.0.0/0 すべてをマスカレード -- 172.20.0.0/16 0.0.0.0/0 すべてをマスカレード -- 172.18.0.0/16 0.0.0.0/0 すべてをマスカレード -- 172.17.0.0/16 0.0.0.0/0 マスカレード tcp -- 172.17.0.2 172.17.0.2 tcp dpt:80 チェーン DOCKER (2 件の参照) ターゲット 利益 選択 ソース 宛先 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 すべてを返す -- 0.0.0.0/0 0.0.0.0/0 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 から:172.17.0.2:80 [root@server1 ~]# 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。 以下もご興味があるかもしれません:
|
<<: CSS3アニメーションジャミングソリューションについての簡単な説明
目次序文1. GMT GMTとはGMTの歴史2. UTC UTCとはUTC は次の 2 つの部分で構...
データベース接続のURLの詳細な説明と概要JDBC URL = プロトコル名 + サブプロトコル名 ...
ルーティングvue-router4 では API の大部分は変更されていないため、変更点のみに焦点を...
1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...
MySQLの起動失敗の解決策MySQLを起動できませんmysqlを停止した後、いくつかの操作(ホスト...
この記事では、MySQL トリガーの定義と使用方法について説明します。ご参考までに、詳細は以下の通り...
目次tinymce、tinymce ts、tinymce-vue 宣言ファイルをインストールするパッ...
私は、WinForm と HTML5 を組み合わせた小さなものを作りたいだけなのですが、突然、そこに...
私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...
初回の読み込みを高速化できるルートの遅延読み込みをどうして忘れられるでしょうか?ルーティングの遅延読...
Dockerのインストール依存パッケージをインストールする sudo yum install -y ...
Traceroute を使用すると、情報がコンピュータからインターネットの反対側のホストまでたどるパ...
ハロウィーンではありませんが、Linux の不気味な側面に注目する価値はあります。幽霊、魔女、ゾンビ...
目次要件: 進行中のアクティビティ データを照会する次のSQLクエリは、上記の4つの要件を満たし、タ...
ゲームのソースコードのダウンロードアドレスを取得するためのJavaScript:クリックしてソースコ...