第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求指教各位,docker容器怎樣實現綁定公網IP/IP?

求指教各位,docker容器怎樣實現綁定公網IP/IP?

慕斯王 2019-11-19 16:14:01
docker容器怎樣實現綁定公網IP/浮動IP
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

有多種方法:
1、把端口用 --publish forward 進容器里,或者說把端口發(fā)布出來。如 docker run -p 80:80 nginx
2、把某個虛擬或物理 interface bridge 進容器里,可以用一個叫 pipework 的工具:
3、直接不對容器網絡做虛擬化/隔離,用 --net=host
準備工作
在使用 weave 之前,你需要在所有宿主機上安裝 Docker 環(huán)境,參考這些教程,在 Ubuntu 或 CentOS/Fedora 發(fā)行版中安裝 Docker。
Docker 環(huán)境部署完成后,使用下面的命令安裝 weave:
$ wget https://github.com/zettio/weave/releases/download/latest_release/weave
$ chmod a+x weave
$ sudo cp weave /usr/local/bin
注意你的 PATH 環(huán)境變量要包含 /usr/local/bin 這個路徑,請在 /etc/profile 文件中加入一行(LCTT 譯注:要使環(huán)境變量生效,你需要執(zhí)行這個命令: source /etc/profile):
export PATH="$PATH:/usr/local/bin"
在每臺宿主機上重復上面的操作。
Weave 在 TCP 和 UDP 上都使用 6783 端口,如果你的系統(tǒng)開啟了防火墻,請確保這兩個端口不會被防火墻擋住。

在每臺宿主機上啟動 Weave 路由器
當你想要讓處于在不同宿主機上的容器能夠互相通信,第一步要做的就是在每臺宿主機上啟動 weave 路由器。
第一臺宿主機,運行下面的命令,就會創(chuàng)建并開啟一個 weave 路由器容器(LCTT 譯注:前面說過了,weave 路由器也是一個容器):
$ sudo weave launch
第一次運行這個命令的時候,它會下載一個 weave 鏡像,這會花一些時間。下載完成后就會自動運行這個鏡像。成功啟動后,終端會輸出這個 weave 路由器的 ID 號。
下面的命令用于查看路由器狀態(tài):
$ sudo weave status

第一個 weave 路由器就緒了,目前為止整個 peer 對等網絡中只有一個 peer 成員。
你也可以使用 docker 的命令來查看 weave 路由器的狀態(tài):
$ docker ps

第二臺宿主機部署步驟稍微有點不同,我們需要為這臺宿主機的 weave 路由器指定第一臺宿主機的 IP 地址,命令如下:
$ sudo weave launch <first-host-IP-address>
當你查看路由器狀態(tài),你會看到兩個 peer 成員:當前宿主機和第一個宿主機。

當你開啟更多路由器,這個 peer 成員列表會更長。當你新開一個路由器時,要指定前一個宿主機的 IP 地址,請注意不是第一個宿主機的 IP 地址(LCTT 譯注:鏈狀結構)。
現在你已經有了一個 weave 網絡了,它由位于不同宿主機的 weave 路由器組成。

把不同宿主機上的容器互聯(lián)起來
接下來要做的就是在不同宿主機上開啟 Docker 容器,并使用虛擬網絡將它們互聯(lián)起來。
假設我們創(chuàng)建一個私有網絡 10.0.0.0/24 來互聯(lián) Docker 容器,并為這些容器隨機分配 IP 地址。
如果你想新建一個能加入 weave 網絡的容器,你就需要使用 weave 命令來創(chuàng)建,而不是 docker 命令。原因是 weave 命令內部會調用 docker 命令來新建容器然后為它設置網絡。
下面的命令是在宿主機 hostA 上建立一個 Ubuntu 容器,然后將它放到 10.0.0.0/24 網絡中,分配的 IP 地址為 10.0.0.1:
hostA:~$ sudo weave run 10.0.0.1/24-t -i ubuntu
成功運行后,終端會顯示出容器的 ID 號。你可以使用這個 ID 來訪問這個容器:
hostA:~$ docker attach <container-id>
在宿主機 hostB 上,也創(chuàng)建一個 Ubuntu 容器,IP 地址為 10.0.0.2:
hostB:~$ sudo weave run 10.0.0.2/24-t -i ubuntu
訪問下這個容器的控制臺:
hostB:~$ docker attach <container-id>
這兩個容器能夠互相 ping 通,你可以通過容器的控制臺檢查一下。

如果你檢查一下每個容器的網絡配置,你會發(fā)現有一塊名為“ethwe”的網卡,你分配給容器的 IP 地址出現在它們那里(比如這里分別是 10.0.0.1 和 10.0.0.2)。

Weave 的其他高級用法
weave 提供了一些非常巧妙的特性,我在這里作下簡單的介紹。

應用分離
使用 weave,你可以創(chuàng)建多個虛擬網絡,并為每個網絡設置不同的應用。比如你可以為一群容器創(chuàng)建 10.0.0.0/24 網絡,為另一群容器創(chuàng)建 10.10.0.0/24 網絡,weave 會自動幫你維護這些網絡,并將這兩個網絡互相隔離。另外,你可以靈活地將一個容器從一個網絡移到另一個網絡而不需要重啟容器。舉個例子:
首先開啟一個容器,運行在 10.0.0.0/24 網絡上:
$ sudo weave run 10.0.0.2/24-t -i ubuntu
然后讓它脫離這個網絡:
$ sudo weave detach 10.0.0.2/24<container-id>
最后將它加入到 10.10.0.0/24 網絡中:
$ sudo weave attach 10.10.0.2/24<container-id>

現在這個容器可以與 10.10.0.0/24 網絡上的其它容器進行通信了。這在當你創(chuàng)建一個容器而網絡信息還不確定時就很有幫助了。

將 weave 網絡與宿主機網絡整合起來
有時候你想讓虛擬網絡中的容器能訪問物理主機的網絡?;蛘呦喾?,宿主機需要訪問容器。為滿足這個功能,weave 允許虛擬網絡與宿主機網絡整合。
舉個例子,在宿主機 hostA 上一個容器運行在 10.0.0.0/24 中,運行使用下面的命令:
hostA:~$ sudo weave expose 10.0.0.100/24
這個命令把 IP 地址 10.0.0.100 分配給宿主機 hostA,這樣一來宿主機 hostA 也連到了 10.0.0.0/24 網絡上了。顯然,你在為宿主機選擇 IP 地址的時候,需要選一個沒有被其他容器使用的地址。
現在 hostA 就可以訪問 10.0.0.0/24 上的所有容器了,不管這些容器是否位于 hostA 上。



查看完整回答
反對 回復 2019-11-24
  • 3 回答
  • 0 關注
  • 760 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號