1. 程式人生 > >docker容器跨主機互聯小實驗

docker容器跨主機互聯小實驗

環境:

兩臺通過vmware虛擬出來的主機

執行centos7作業系統

前面講的通過link命令實現容器之間的互聯,然而link命令只能實現單個主機中各個容器之間的連線。如果需要在不同的主機之間實現連線,必須通過其他的方式。

docker安裝之後會預設建立一個名為docker0的虛擬網橋,當建立容器的時候會建立一組veth pair介面。這對介面一端在容器中,稱為eth0,另一端被掛載到了docker0網橋上,以veth開頭,這樣主機就可以和容器之間進行通訊。

跨主機的情況下可以通過linux的路由機制來解決


1.在第一臺主機上修改Docker0的網路地址。

修改方式可以參考:

http://blog.csdn.net/lin521lh/article/details/78470732

2.在左邊的主機上新增路由規則:

route add -net 172.18.0.0/16 gw 192.168.18.128

同樣的在右邊的主機上新增路由規則:

route add -net 172.17.0.0/16 gw 192.168.18.130

3.重新設定防火牆

iptables -F ;

iptables -t nat -F

兩個容器之間可以相互ping通。

資料包的傳送流程:

Container(右)->docker0(右)->eth0(右)->eth0(左)->docker0(左)->container(左)

相關推薦

docker容器主機互聯實驗

環境: 兩臺通過vmware虛擬出來的主機 執行centos7作業系統 前面講的通過link命令實現容器之間的互聯,然而link命令只能實現單個主機中各個容器之間的連線。如果需要在不同的主機之間實現連線,必須通過其他的方式。 docker安裝之後會預設建立一個名為docke

Docker容器主機通訊的幾種方式

前言:Docker的5種網路模式 Bridge 此時docker引擎會建立一個veth對,一端連線到容器例項並命名為eth0,另一端連線到指定的網橋中(比如docker0),因此同在一個主機的容器例項由於連線在同一個網橋中,它們能夠互相通訊。容器建立時還會自

Docker容器主機通訊--overlay

主機配置 A  45.77.250.9  CentOS 7 x64 B  66.42.55.131  CentOS 7 x64 1.A、B主機分別安裝docker yum install docker -

Docker容器主機通訊之:直接路由方式

概述 就目前Docker自身預設的網路來說,單臺主機上的不同Docker容器可以藉助docker0網橋直接通訊,這沒毛病,而不同主機上的Docker容器之間只能通過在主機上用對映埠的方法來進行通訊,有時這種方式會很不方便,甚至達不到我們的要求,

centos7下安裝docker(15.7容器主機網絡---calico)

信息 https 用戶 client /usr ctc onf pan 映射 Calico是一個純三層的虛擬網絡方案,Calico為每個容器分配一個IP,每個host都是router,把不同host的容器連接起來。與vxlan不同的是:calico不對數據包進行封裝,不需要

(菜汪學docker)docker+macVlan實現容器主機

本汪接觸macvlan沒有幾天,還是分享一些我的學習資料吧,學習總結就不好意思給了。 macvlan對於伺服器和交換機來說還是有點區別的,下面是大神們的資料 下面進去入實驗, 上一張比較lo

centos7下安裝docker(15.5容器主機網路--flanneld)

flannel是由CoreOS研究的一種覆蓋網路(overlay network)網路工具,目的是幫助每一個host主機有一個完整的子網; 功能是:讓叢集中不同節點的主機建立的容器都有一個唯一的虛擬IP 工作原理:將TCP資料包裝在另一種網路包裡進行路由轉發和通訊,目前已經支援UDP,Vxlan,AWS,AP

Docker主機容器間通信之overlay [十五]

boot mes ports usr unable network oot tcp 解決方案 一、配置overlay類型網絡準備工作 1、在luoahong3主機上 docker run -d -p 8500:8500 -h consul --name consul pr

Docker容器間的互聯

在同一宿主機下,docker容器通過docker網橋進行連線,預設情況下,同一宿主機下的所有容器都可以連線。但是容器的ip可能隨著容器重啟而變化,所以docker提供了link選項提供可靠連線。 docker run --link=[CONTAINER]:[ALIAS] [IMAGE

Docker容器主機如何互相拷貝傳輸檔案

一、說明 日常工作中我們常常會遇到容器與宿主機之間的檔案拷貝,今天我就專門介紹如何使用docker的cp命令。 一、語法 sudo docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- sudo docker cp

Docker容器主機之間的檔案傳遞——docker cp 命令

用途說明 docker cp命令用於將檔案在主機和Docker容器之間進行傳遞。傳遞是採用cp複製的方式,而不是對映,即,拷貝後在一方的修改不影響另一方檔案的內容。 語法 docker cp [OPTION] CONTAINER:SR

我的docker隨筆7:docker容器主機之間檔案拷貝

背景 Docker提供cp命令,用於主機和容器之間相互拷貝。 docker cp命令 下面所有示例的命令都是在主機進行的。 命令形式如下: docker cp <主機目錄或檔案的路徑> <容器ID:容器路徑> 示例: 執行一個容

基於docker搭建主機的spark叢集並配置notebook(一)

一、製作docker映象知識水平尚有欠缺,對於dockerfile那一套理論也不熟悉,所以採取的製作一個docker映象作為啟動叢集的載體:該叢集有12個節點,即12個容器,平均分配在兩個宿主機上,具

基於docker搭建主機的spark叢集並配置notebook(二)

上一篇文章製作好了docker映象,現在在兩臺伺服器上部署spark叢集宿主機1IP:192.168.0.21 ;宿主機2IP:192.168.0.30(一)在宿主機安裝weave,使不同宿主機的容器之間能夠互相通訊(二)實現宿主機1到宿主機2的ssh免密登入(三)在宿主

Docker學習筆記 — Weave實現主機容器互聯

Docker的原生網路支援非常有限,且沒有跨主機的叢集網路方案。目前實現Docker網路的開源方案有Weave、Kubernetes、Flannel、Pipework以及SocketPlane等,其中Weave被評價為目前最靠譜的,那麼這裡就對Weave的基本原

docker容器主機訪問

docker 容器 跨主機 通信 訪問 在同一宿主機下的Docker的容器之間是默認互相聯通的。通過docker inspect id或name可以查看到ip地址。在不同的容器中來執行ping是可以ping通的,然而跨容器則行不通,於是總結了以下3種方法Docker容器默認跨主機之間的鏈接

主機網絡概述 - 每天5分鐘玩轉 Docker 容器技術(48)

docker 教程 容器 前面已經學習了 Docker 的幾種網絡方案:none、host、bridge 和 joined 容器,它們解決了單個 Docker Host 內容器通信的問題。本章的重點則是討論跨主機容器間通信的方案。跨主機網絡方案包括:docker 原生的 overlay 和 mac

overlay 如何實現主機通信?- 每天5分鐘玩轉 Docker 容器技術(52)

docker 教程 容器 上一節我們在 host1 中運行了容器 bbox1,今天將詳細討論 overlay 網絡跨主機通信的原理。在 host2 中運行容器 bbox2:bbox2 IP 為 10.0.0.3,可以直接 ping bbox1:可見 overlay 網絡中的容器可以直接通信,同時

實戰案例:構建docker容器集群 (解決方案一:使用自定義網橋連接主機容器

docker一、實驗環境虛擬機a兩塊網卡 eth0 eth1 (IP地址static或者dhcp)虛擬機b兩塊網卡 eth0 eth1 (IP地址static或者dhcp)二、在兩臺虛擬機上配置網橋虛擬機a操作:apt-get install bridge-utilsvim /etc/ne

如何實現 Docker 主機存儲?- 每天5分鐘玩轉 Docker 容器技術(73)

docker 教程 容器 從業務數據的角度看,容器可以分為兩類:無狀態(stateless)容器和有狀態(stateful)容器。無狀態是指容器在運行過程中不需要保存數據,每次訪問的結果不依賴上一次訪問,比如提供靜態頁面的 web 服務器。有狀態是指容器需要保存數據,而且數據會發生變化,訪問的結果