亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker容器如何實現跨主機通信

發布時間:2020-06-11 20:18:32 來源:億速云 閱讀:398 作者:元一 欄目:云計算

什么是docker

docker是一個開源的應用容器引擎,開發者可以打包自己的應用到容器里面,然后遷移到其他機器的docker應用中,可以實現快速部署。如果出現的故障,可以通過鏡像,快速恢復服務。

docker安裝

環境準備

操作系統:CentOS 7.6.1810

軟件源:阿里云鏡像(在阿里云鏡像站上面可以找到docker-ce的軟件源,使用國內的源速度比較快)

安裝docker-ce

如果沒有物理機,可以先使用虛擬機進行學習。操作系統安裝,跳過(網上教程很多)。

1、安裝依賴

docker依賴于系統的一些必要的工具,可以提前安裝。

yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加軟件源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安裝docker-ce

yum clean all yum makecache fastyum -y install docker-ce

4、啟動服務

通過systemctl啟動服務

systemctl start docker

5、查看安裝版本

這樣子就安裝成功了,啟動服務以后可以使用docker version查看一下當前的版本。

一、準備工作
跨主機需要兩個獨立的網卡:
server1和server2添加網卡

docker容器如何實現跨主機通信
docker容器如何實現跨主機通信
docker容器如何實現跨主機通信

[root@localhost ~]# ip addr show   查看網卡是否添加成功

docker容器如何實現跨主機通信
添加成功。

macvlan本身是linxu kernel的模塊,本質上是一種網卡虛擬化技術。其功能是允許在同一個物理網卡上虛擬出多個網卡,通過不同的MAC地址在數據鏈路層進行網絡數據的轉發,一塊網卡上配置多個 MAC 地址(即多個 interface),每個interface可以配置自己的IP,Docker的macvlan網絡實際上就是使用了Linux提供的macvlan驅 動。因為多個MAC地址的網絡數據包都是從同一塊網卡上傳輸,所以需要打開網卡的混雜模式ip link set eth2 promisc on。

打開server1和server2的ens37網卡的混雜模式,在server1和server2上運行以下命令:
[root@localhost ~]# ip link set ens37 promisc  on
[root@localhost ~]# ip addr show ens37              #查看promiscm功能是否打開

docker容器如何實現跨主機通信
docker容器如何實現跨主機通信
注意:如果不開啟混雜模式,會導致macvlan網絡無法訪問外界
具體在不使用vlan時,表現為無法ping通路由,無法ping通同一網絡內其他主機
在兩臺主機上各創建macvlan網絡
創建macvlan網絡不同于橋接模式,需要指定網段和網關(因為要保證跨主機上網段和網關是相同的),并且都得是真實存在的
[root@localhost ~]# docker network create -d macvlan --subnet 172.16.36.0/24 --gateway 172.16.36.254 -o parent=ens37 macvlan       #創建名為macvlan的網絡
[root@localhost ~]# docker network ls        #查看本地網絡信息

docker容器如何實現跨主機通信

創建docker容器
server1:
[root@localhost ~]# docker run -it --name vm01 --network=macvlan --ip=172.16.36.101 centos
[root@1f89fd5f37ff /]# ip addr

docker容器如何實現跨主機通信

[root@1f89fd5f37ff /]# ping 172.16.36.100

docker容器如何實現跨主機通信
server2:
[root@localhost ~]# docker run -it --name vm02 --network=macvlan --ip=172.16.36.100 centos
[root@e8da7e4ef2b3 /]# ip addr

docker容器如何實現跨主機通信

[root@e8da7e4ef2b3 /]# ping 172.16.36.101

docker容器如何實現跨主機通信

跨主機通信就這樣配置完了。

DNS設置

跨主機通信設置成功后,容器可能需要上網進行資料下載。所以現在進行DNS設置,配置如下:
修改daemon.json文件,文件所在路徑為/etc/docker/下,文件添加以下內容:
"dns" :[
"172.16.1.1",
"202.96.128.166"
]
docker容器如何實現跨主機通信
注:安裝軟件為docker的直接修改daemon.json文件,安裝軟件為docker-ce的需要創建daemon.json文件。

測試:
docker容器如何實現跨主機通信

補充:

在使用過程中,發現重啟宿主主機后,macvlan模式會自動關閉,導致使用該功能的容器之間無法通信。
docker容器如何實現跨主機通信
docker容器如何實現跨主機通信
未發現PROMISC狀態是 UP,
需要手動開啟promisc功能,才能恢復通信。
[root@localhost ~]# ip link set ens37 promisc on                 #開啟promisc功能
[root@localhost ~]# ip addr show ens37                 #查看網卡ens37的網卡信息
[root@localhost ~]# docker exec -it vm02 /bin/bash          #登錄容器
[root@8cb8828007cf /]# ping 172.16.36.100          #連通性測試
docker容器如何實現跨主機通信

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辽源市| 滨州市| 洞口县| 鄯善县| 西青区| 武夷山市| 新营市| 济阳县| 克拉玛依市| 布拖县| 政和县| 常宁市| 香港| 崇仁县| 中江县| 清镇市| 尼木县| 姚安县| 澄城县| 玉树县| 增城市| 东阿县| 桐乡市| 临漳县| 武山县| 阜新市| 嵩明县| 奉化市| 榕江县| 慈利县| 清涧县| 奉新县| 达州市| 安吉县| 吉水县| 图木舒克市| 鲁山县| 黔南| 武邑县| 青浦区| 来凤县|