<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## docker網絡原理 1.linux環境使用ip addr查看網絡 ![](https://img.kancloud.cn/2b/13/2b134ba5496c35d6f0e5073f7a60d177_754x276.png) 2.啟動一個docker服務,然后查看容器的網絡 ![](https://img.kancloud.cn/a1/7a/a17a483dc242e01864d219e957dfe18d_753x136.png) 3.此時查看linux網絡 ![](https://img.kancloud.cn/a6/29/a6291a01c7c08faf7ce311d4bf13390a_757x318.png) 同時發現容器間和linux之間都可以相互ping通(說明容器間可以通過ip直接互聯) 原理:我們每啟動一個docker容器,docker都會給docker容器分配一個ip,只要我們安裝了docker,就會有一個網卡docker0(docker0特點:是默認的,但是域名不能訪問,使用--link可以打通連接),橋接模式,使用的技術是evth-pair技術(evth-pair 就是一對虛擬的設備接口,他們都是成對出現的,一端連著協議,一端彼此相連,正因為這個特性,evth-pair充當一個橋梁,連接各種虛擬網絡設備。)![](https://img.kancloud.cn/53/f2/53f2cd827ebe728c3895cc32d3ee4248_757x465.png) ## docker容器互聯 ~~~ 啟動tomcat1容器:docker run -d -P --name tomcat1 tomcat 啟動tomcat2容器:docker run -d -P --name tomcat2 tomcat tomcat2 ping tomcat1:docker exec -it tomcat2 ping tomcat1 結論:ping不通,找不到該服務 啟動tomcat1容器:docker run -d -P --name tomcat1 tomcat 啟動tomcat2容器:docker run -d -P --name tomcat2 --link tomcat1 tomcat tomcat2 ping tomcat1:docker exec -it tomcat2 ping tomcat1 結論:ping通 但是使用tomcat1 ping tomcat2仍然ping不通 ~~~ 查看容器hosts發現 ![](https://img.kancloud.cn/df/1a/df1ad83f1b72d78018629643ee4eb921_744x301.png) \--link本質就是在hosts文件中增加了一個映射 ## docker自定義網絡 查看所有的docker網絡 ![](https://img.kancloud.cn/82/a4/82a40f30505c33bdefbd7897d276d4f3_551x87.png) 網絡模式: bridge:橋接模式(默認docker啟動容器時會有參數--net bridge) none:不配置網絡 host:和宿主機共享網絡 container:容器網絡連通(用的很少,局限很大) 自定義一個網絡 ~~~ C:\Users\wzj>docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet 33de0d356ebb6b099b630c00902436205d3afa702ac8e0bcab993be616d7d8a9 參數: --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 C:\Users\wzj>docker network ls NETWORK ID NAME DRIVER SCOPE d15df6050eb8 bridge bridge local b41c5bfa2a72 host host local 33de0d356ebb mynet bridge local 13fb56116fbd none null local ~~~ ![](https://img.kancloud.cn/4a/a3/4aa32b78c65057b0387c1c476971a8e4_648x496.png) 使用自己的網絡創建容器 ~~~ C:\Users\wzj>docker run -d -P --name tomcat1 --net mynet tomcat 56535903fbf8043e764bac919e82f79898ddaa2d68dea741317870106934bfac C:\Users\wzj>docker run -d -P --name tomcat2 --net mynet tomcat b3851940ef6189a0ac5e7abb48626c0fe9bb0cfda1c443671d52144522e11c92 C:\Users\wzj>docker network inspect mynet [ { "Name": "mynet", "Id": "33de0d356ebb6b099b630c00902436205d3afa702ac8e0bcab993be616d7d8a9", "Created": "2020-11-26T09:51:36.8522108Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "192.168.0.0/16", "Gateway": "192.168.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "56535903fbf8043e764bac919e82f79898ddaa2d68dea741317870106934bfac": { "Name": "tomcat1", "EndpointID": "361bf66c78acb786596f07c06275ceb1332659e7bf5344d5235088e2d0af9323", "MacAddress": "02:42:c0:a8:00:02", "IPv4Address": "192.168.0.2/16", "IPv6Address": "" }, "b3851940ef6189a0ac5e7abb48626c0fe9bb0cfda1c443671d52144522e11c92": { "Name": "tomcat2", "EndpointID": "e80cf7b43ac193156965fc7ac027fa1488013bd9bcdbe1aef2cc84f24240f591", "MacAddress": "02:42:c0:a8:00:03", "IPv4Address": "192.168.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ] C:\Users\wzj>docker exec -it tomcat1 ping 192.168.0.3 PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data. 64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.078 ms 64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.090 ms C:\Users\wzj>docker exec -it tomcat1 ping tomcat2 PING tomcat2 (192.168.0.3) 56(84) bytes of data. 64 bytes from tomcat2.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.153 ms 64 bytes from tomcat2.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.054 ms ~~~ 發現使用我們自定義的docker網絡不需要--link連通容器,就可以直接使用名字ping通 ## 網絡連通 使用docker自帶的網絡啟動的容器ip是由docker0分配的,使用我們自定義網絡啟動的容器ip是由我們自定義的網絡分配的,由于網段不同,所以這樣啟動的兩個容器是沒法連通的。 ~~~ C:\Users\wzj>docker run -d -P --name tomcat1 tomcat c324a68f9db7bdd854f0fd0990af831f131694ab3b06fa7c9d75aadb47471e04 C:\Users\wzj>docker run -d -P --name tomcat_net_1 --net mynet tomcat 0a21a67740068c037345ec53c897917bb2a6d530f7df241f447e4f98f6cbd6e3 C:\Users\wzj>docker exec -it tomcat_net_1 ping tomcat1 ping: tomcat_net_1: No address associated with hostname 想要ping通的話需要做網絡連通 C:\Users\wzj>docker network connect mynet tomcat1 連通后發現: C:\Users\wzj>docker network inspect mynet [ { "Name": "mynet", "Id": "33de0d356ebb6b099b630c00902436205d3afa702ac8e0bcab993be616d7d8a9", "Created": "2020-11-26T09:51:36.8522108Z", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "192.168.0.0/16", "Gateway": "192.168.0.1" } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "0a21a67740068c037345ec53c897917bb2a6d530f7df241f447e4f98f6cbd6e3": { "Name": "tomcat_net_1", "EndpointID": "f2856e77d60829df2ea5f59772ceea2c24693a22e6ab66791982e4d90eb818a6", "MacAddress": "02:42:c0:a8:00:02", "IPv4Address": "192.168.0.2/16", "IPv6Address": "" }, "c324a68f9db7bdd854f0fd0990af831f131694ab3b06fa7c9d75aadb47471e04": { "Name": "tomcat1", "EndpointID": "2a04733947fa9a922eaf749c7f7bc83ea2e4c696d4804329c0d8b40e084b2cb9", "MacAddress": "02:42:c0:a8:00:03", "IPv4Address": "192.168.0.3/16", "IPv6Address": "" } }, "Options": {}, "Labels": {} } ] C:\Users\wzj>docker exec -it tomcat_net_1 ping tomcat1 PING tomcat1 (192.168.0.3) 56(84) bytes of data. 64 bytes from tomcat1.mynet (192.168.0.3): icmp_seq=1 ttl=64 time=0.081 ms 64 bytes from tomcat1.mynet (192.168.0.3): icmp_seq=2 ttl=64 time=0.209 ms ~~~ 結論:想要跨網絡連通,需要使用docker network connect連通容器與網絡
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看