dockerifcfgeth0
① docker 可以部署在裸機么
為了解決跨minion之間Pod的通信問題,我們在每個minion上安裝OpenvSwtich,並使用GRE或者VxLAN使得跨機器之間Pod能相互通信,本文使用GRE,而VxLAN通常用在需要隔離的大規模網路中。對於OpenvSwitch的具體安裝步驟,可參考這篇博客,我們在這里就不再詳細介紹安裝步驟了。安裝完OpenvSwitch後,接下來便建立minion1和minion2之間的隧道。首先在minion1和minion2上建立OVSBridge,[root@minion1~]#ovs-vsctladd-brobr0接下來建立gre,並將新建的gre0添加到obr0,在minion1上執行如下命令,[root@minion1~]#ovs-vsctladd-portobr0gre0--setInterfacegre0type=greoptions:remote_ip=192.168.230.5在minion2上執行,[root@minion2~]#ovs-vsctladd-portobr0gre0--setInterfacegre0type=greoptions:remote_ip=192.168.230.4至此,minion1和minion2之間的隧道已經建立。然後我們在minion1和minion2上創建Linux網橋kbr0替代Docker默認的docker0(我們假設minion1和minion2都已安裝Docker),設置minion1的kbr0的地址為172.17.1.1/24,minion2的kbr0的地址為172.17.2.1/24,並添加obr0為kbr0的介面,以下命令在minion1和minion2上執行。[root@minion1~]#brctladdbrkbr0//創建linuxbridge[root@minion1~]#brctladdifkbr0obr0//添加obr0為kbr0的介面[root@minion1~]#iplinksetdevdocker0down//設置docker0為down狀態[root@minion1~]#iplinkdeldevdocker0//刪除docker0為了使新建的kbr0在每次系統重啟後任然有效,我們在/etc/sysconfig/network-scripts/目錄下新建minion1的ifcfg-kbr0如下:DEVICE=kbr0ONBOOT=yesBOOTPROTO=staticIPADDR=172.17.1.1NETMASK=255.255.255.0GATEWAY=172.17.1.0USERCTL=noTYPE=BridgeIPV6INIT=no同樣在minion2上新建ifcfg-kbr0,只需修改ipaddr為172.17.2.1和gateway為172.17.2.0即可,然後執行systemctlrestartnetwork重啟系統網路服務,你能在minion1和minion2上發現kbr0都設置了相應的IP地址。為了驗證我們創建的隧道是否能通信,我們在minion1和minion2上相互ping對方kbr0的IP地址,從下面的結果發現是不通的,經查找這是因為在minion1和minion2上缺少訪問172.17.1.1和172.17.2.1的路由,因此我們需要添加路由保證彼此之間能通信。[root@minion1network-scripts]#ping172.17.2.1PING172.17.2.1(172.17.2.1)56(84)bytesofdata.^C---172.17.2.1pingstatistics---2packetstransmitted,0received,100%packetloss,time1000ms[root@minion2~]#ping172.17.1.1PING172.17.1.1(172.17.1.1)56(84)bytesofdata.^C---172.17.1.1pingstatistics---2packetstransmitted,0received,100%packetloss,time1000ms由於通過iprouteadd添加的路由會在下次系統重啟後失效,為此我們在/etc/sysconfig/network-scripts目錄下新建一個文件route-eth0存儲路由,這里需要注意的是route-eth0和ifcfg-eth0的黑體部分必須保持一致,否則不能工作,這樣添加的路由在下次重啟後不會失效。為了保證兩台minion的kbr0能相互通信,我們在minion1的route-eth0里添加路由172.17.2.0/24via192.168.230.5deveno16777736,eno16777736是minion1的網卡,同樣在minion2的route-eth0里添加路由172.17.1.0/24via192.168.230.4deveno16777736。重啟網路服務後再次驗證,彼此kbr0的地址可以ping通,如:[root@minion2network-scripts]#ping172.17.1.1PING172.17.1.1(172.17.1.1)56(84)bytesofdata.64bytesfrom172.17.1.1:icmp_seq=1ttl=64time=2.49ms64bytesfrom172.17.1.1:icmp_seq=2ttl=64time=0.512ms^C---172.17.1.1pingstatistics---2packetstransmitted,2received,0%packetloss,time1002msrttmin/avg/max/mdev=0.512/1.505/2.498/0.993ms
② 如何在Docker上部署Kubernetes
為了解決跨minion之間Pod的通信問題,我們在每個minion上安裝Open vSwtich,並使用GRE或者VxLAN使得跨機器之間Pod能相互通信,本文使用GRE,而VxLAN通常用在需要隔離的大規模網路中。對於Open vSwitch的具體安裝步驟,可參考這篇博客,我們在這里就不再詳細介紹安裝步驟了。安裝完Open vSwitch後,接下來便建立minion1和minion2之間的隧道。首先在minion1和minion2上建立OVS Bridge,
[root@minion1 ~]# ovs-vsctl add-br obr0
接下來建立gre,並將新建的gre0添加到obr0,在minion1上執行如下命令,
[root@minion1 ~]# ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.230.5
在minion2上執行,
[root@minion2 ~]# ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.230.4
至此,minion1和minion2之間的隧道已經建立。然後我們在minion1和minion2上創建Linux網橋kbr0替代Docker默認的docker0(我們假設minion1和minion2都已安裝Docker),設置minion1的kbr0的地址為172.17.1.1/24, minion2的kbr0的地址為172.17.2.1/24,並添加obr0為kbr0的介面,以下命令在minion1和minion2上執行。
[root@minion1 ~]# brctl addbr kbr0 //創建linux bridge
[root@minion1 ~]# brctl addif kbr0 obr0 //添加obr0為kbr0的介面
[root@minion1 ~]# ip link set dev docker0 down //設置docker0為down狀態
[root@minion1 ~]# ip link del dev docker0 //刪除docker0
為了使新建的kbr0在每次系統重啟後任然有效,我們在/etc/sysconfig/network-scripts/目錄下新建minion1的ifcfg-kbr0如下:
DEVICE=kbr0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.17.1.1
NETMASK=255.255.255.0
GATEWAY=172.17.1.0
USERCTL=no
TYPE=Bridge
IPV6INIT=no
同樣在minion2上新建ifcfg-kbr0,只需修改ipaddr為172.17.2.1和gateway為172.17.2.0即可,然後執行systemctl restart network重啟系統網路服務,你能在minion1和minion2上發現kbr0都設置了相應的IP地址。為了驗證我們創建的隧道是否能通信,我們在minion1和minion2上相互ping對方kbr0的IP地址,從下面的結果發現是不通的,經查找這是因為在minion1和minion2上缺少訪問172.17.1.1和172.17.2.1的路由,因此我們需要添加路由保證彼此之間能通信。
[root@minion1 network-scripts]# ping 172.17.2.1
PING 172.17.2.1 (172.17.2.1) 56(84) bytes of data.
^C
--- 172.17.2.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms
[root@minion2 ~]# ping 172.17.1.1
PING 172.17.1.1 (172.17.1.1) 56(84) bytes of data.
^C
--- 172.17.1.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms
由於通過ip route add添加的路由會在下次系統重啟後失效,為此我們在/etc/sysconfig/network-scripts目錄下新建一個文件route-eth0存儲路由,這里需要注意的是route-eth0和ifcfg-eth0的黑體部分必須保持一致,否則不能工作,這樣添加的路由在下次重啟後不會失效。為了保證兩台minion的kbr0能相互通信,我們在minion1的route-eth0里添加路由172.17.2.0/24 via 192.168.230.5 dev eno16777736,eno16777736是minion1的網卡,同樣在minion2的route-eth0里添加路由172.17.1.0/24 via 192.168.230.4 dev eno16777736。重啟網路服務後再次驗證,彼此kbr0的地址可以ping通,如:
[root@minion2 network-scripts]# ping 172.17.1.1
PING 172.17.1.1 (172.17.1.1) 56(84) bytes of data.
64 bytes from 172.17.1.1: icmp_seq=1 ttl=64 time=2.49 ms
64 bytes from 172.17.1.1: icmp_seq=2 ttl=64 time=0.512 ms
^C
--- 172.17.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 0.512/1.505/2.498/0.993 ms
③ docker運行centos 為什麼不能ifconfig
centos7已經不使用 ifconfig命令了,已經用ip命令代替;
並且網卡名稱也不是eth0了,而是改成eno16777736了。
④ 網卡網關配置有誤是什麼意思
我們電腦在使用網路的時候,如果網路有問題無法使用,網卡網關配置有誤引起的,我們可以通過檢查和設置的方法解決。下面就告訴大家,網卡網關配置有誤怎麼解決?
檢查網線連接是不是正常,如果網線連接不正常,也會造成網卡網關配置有誤,我們重新將網線和介面連接一下即可。
如果是設置問題,我們可以先點擊電腦任務欄的網路連接圖標。
之後我們在網路窗口中,點擊本地連接選項。
之後我們在打開的窗口中點擊屬性按鈕。
之後我們在裡面點擊Internet協議版本選項,我們需要雙擊進入。
之後我們將IP和DNS的手動連接改為自動連接,即可自動獲得IP和DNS。
1、網關錯誤是指路由器指向不正確,網關的IP地址設置不正確,可以檢查重置。
2、網關也稱為網關和協議轉換器。網關實現網路層以上的網路互聯,是一種復雜的網路互聯設備,僅用於高層協議不同的兩個網路的互聯。網關可用於廣域網互連和區域網互連。網關是一種起著重要轉換作用的計算機系統或設備。網關是兩個通信協議、數據格式或語言不同,甚至體系結構完全不同的系統之間的翻譯器。與網橋簡單地傳送信息不同,網關將接收到的信息重新打包,以滿足目的系統的需要。同層——應用層。我們都知道,從一個房間走到另一個房間,必然要經過一扇門。同樣,從一個網路向另一個網路發送信息必須經過一個「網關」,也就是關口。顧名思義,網關是一個網路和另一個網路之間的網關。也就是網路檢查點。
最後我們檢查設置成功,點擊確定,即可開始自動連接,即可解決網卡網關配置有誤的問題。
⑤ 如何創建docker network
使用docker network create命令來創建,只能創建docker內建的網路模式
使用docker plugin,創建自定義網路
使用docker命令創建網路
Docker中內置的網路模式包括如下幾種:
bridge 我們基於該網路模式創建了mynet網路
host 本地網路模式
macvlan 這個模式貌似是最新加的
null 無網路
overlay 用於swarm集群中容器的跨主機網路訪問
docker create network命令包含以下參數:
Flag shorthand -h has been deprecated, please use --help
Usage: docker network create [OPTIONS] NETWORK
Create a network
Options:
--attachable Enable manual container attachment
--aux-address map Auxiliary IPv4 or IPv6 addresses used by Network driver (default map[])
-d, --driver string Driver to manage the Network (default "bridge")
--gateway stringSlice IPv4 or IPv6 Gateway for the master subnet
--help Print usage
--internal Restrict external access to the network
--ip-range stringSlice Allocate container ip from a sub-range
--ipam-driver string IP Address Management Driver (default "default")
--ipam-opt map Set IPAM driver specific options (default map[])
--ipv6 Enable IPv6 networking
--label list Set metadata on a network (default [])
-o, --opt map Set driver specific options (default map[])
--subnet stringSlice Subnet in CIDR format that represents a network segment
創建overlay模式的全局網路,我們可以看到新創建的mynet1的scope是swarm,即集群范圍可見的。
172.18.0.1:root@sz-pg-oam-docker-test-001:/root]# docker network create -d overlay mynet1
x81fu4ohqot2ufbpoa2u8vyx3
172.18.0.1:root@sz-pg-oam-docker-test-001:/root]# docker network ls
NETWORK ID NAME DRIVER SCOPE
ad3023f6d324 bridge bridge local
346c0fe30055 crane_default bridge local
4da289d8e48a docker_gwbridge bridge local
3d636dff00da host host local
tx49ev228p5l ingress overlay swarm
x81fu4ohqot2 mynet1 overlay swarm
cc14ee093707 none null local
172.18.0.1:root@sz-pg-oam-docker-test-001:/root]# docker network inspect mynet1
[
{
"Name": "mynet1",
"Id": "x81fu4ohqot2ufbpoa2u8vyx3",
"Created": "0001-01-01T00:00:00Z",
"Scope": "swarm",
"Driver": "overlay",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": []
},
"Internal": false,
"Attachable": false,
"Containers": null,
"Options": {
"com.docker.network.driver.overlay.vxlanid_list": "4097"
},
"Labels": null
}
]
注意,overlay模式的網路只能在swarm的manager節點上創建,如果在work節點上創建overlay網路會報錯:
172.18.0.1:root@sz-pg-oam-docker-test-002:/root]# docker network create -d overlay mynet1
Error response from daemon: Cannot create a multi-host network from a worker node. Please create the network from a manager node.
如果不使用-d指定driver將默認創建本地bridge網路。
自定義網路
創建自定義網路需要設置網路的driver和ipam。
⑥ docker網路怎麼配置/
在你的宿主機啟動docker的時候會多出一個 docker0 的虛擬網卡,然後容器都通過這個和外面通信。容器和docker宿主機之間是NAT的方式共享網路的,也就是說宿主機可以訪問的資源,容器也是可以直接訪問,你要使用apt-get,你就要保證你的宿主機可以上外網,否則免談。
⑦ docker屬於雲計算的哪一層
杭州雲計算學習之Docker容器的四種網路模式*
Docker容器是一個開源的應用容器引擎,讓開發者可以以統一的方式打包他們的應用以及依賴包到一個可移植的容器中,然後發布到任何安裝Docker引擎的伺服器上,也可以實現虛擬化。
隨著雲計算的飛速發展以及企業需求的多樣化,Docker容器技術成為雲計算人才必備的技能之一。很多人想要快速掌握Docker容器技術,接下來的杭州雲計算學習進階就給大家講解Docker容器的四種網路模式。
1、closed container 封閉式網路模式
沒有網路協議棧的通信使用none模式,Docker容器擁有自己的Network Namespace,但是,並不為Docker容器進行任何網路配置。也就是說,這個Docker容器沒有網卡、IP、路由等信息,只有lo網路介面。需要我們自己為Docker容器添加網卡、配置IP等。
2、bridged container 橋接式網路模式
各個容器之間網路協議棧單獨分離當Docker啟動時,會自動在主機上創建一個docker0虛擬網橋,實際上是Linux的一個bridge,可以理解為一個軟體交換機,它會在掛載到它的網口之間進行轉發。同時,Docker隨機分配一個本地未佔用的私有網段(在 RFC1918 中定義)中的一個地址給docker0介面。當創建一個Docker容器的時候,同時會創建了一對veth pair 介面。這對介面一端在容器內,即eth0;另一端在本地並被掛載到docker0網橋,名稱以veth開頭。通過這種方式,主機可以跟容器通信,容器之間也可以相互通信。Docker就創建了在主機和所有容器之間一個虛擬共享網路。
3、joined container 聯合掛載式網路模式
容器之間可以共享網路協議棧,即可以通過套接字來進行通信這個模式指定新創建的容器和已經存在的一個容器共享一個Network Namespace,而不是和宿主機共享。新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定的容器共享 IP、埠范圍等。同樣,兩個容器除了網路方面,其他的如文件系統、進程列表等還是隔離的。兩個容器的進程可以通過lo網卡設備通信。
4、opentainer container 開放式網路模式
與主機共享網路協議棧Host模式使用是在容器啟動時候指明--network host,此時容器共享宿主機的Network Namespace,容器內啟動的埠直接是宿主機的埠,容器不會創建網卡和IP,直接使用宿主機的網卡和IP,但是容器內的其他資源是隔離的,如文件系統、用戶和用戶組。直接使用宿主機網路。同樣啟動一個nginx,此時共享主機網路,根據情況來使用,這樣子也不用做埠轉發,網路傳輸效率會比較高。
⑧ docker 容器配置IP
你沒有確定什麼用VISTA
進行配置我用的網路配置管理來解釋:!
我們知道,在微軟的Vista系統中的網路功能得到了顯著的改善,特別是在之前版本的系統設置已經非常不同的,這讓許多剛剛安裝了Vista系統的新手虧損,感覺設置是非常困難的。在這里,我教你如何創建和Vista下管理虛擬專用網(VPN)。
一,創建一個連接
第一次啟動Vistat系統,然後單擊「開始/連接到」菜單,在當前系統中顯示所有可用的網路連接,然後點擊下面的「設置連接或網路「鏈接,就會彈出」網路連接「窗口,在其中的四個選項列表,連接到網路,因為它是建立一個VPN連接,選擇」連接到工作區「,然後單擊「下一步」按鈕。
然後選擇「使用我的Internet連接(VPN)」項,單擊「下一步」按鈕,然後輸入VPN的IP地址登錄和目標名稱,在這里可以設置是否使用智能卡,允許其他人使用此連接,並立即連接到VPN。分配給您的用戶名和密碼
最後輸入時,它會自動連接到點擊「下一步」按鈕,VPN,然後創建VPN連接。
二,VPN日常維護
VPN建立的時候,通常你需要連接,你可以用同樣的方法撥號連接,然後單擊「開始/連接到」菜單中,然後,您可以看到所有可用的側從中挑選合適的VPN連接,您可以雙擊該VPN網路連接列表後,立即連接。
但管理選項「連接到網路」中的撥號連接實在有限,無法建立連接更多的管理,甚至刪除現有的連接都無法使用。因此,如何管理VPN連接它的「網路連接」?
首先在「網路連接」對話框中,單擊「打開網路和共享中心」鏈接,進入「網路和共享中心」窗口。在這里,您可以網上的「網路連接」的管理,其中包括「重命名」,「刪除」,「創建快捷方式」,「創建副本」,等你甚至可以改變連接的連接設置。
如果你覺得VPN鏈接放置在桌面上,只需選擇在「網路連接」窗口中所需的VPN連接,然後單擊「創建快捷方式」按鈕,系統會自動彈出「Windows可以不能在當前位置創建快捷方式,使桌面上的快捷方式?「的提示,點擊」是「按鈕後,就可以在桌面上創建VPN的快捷方式。
⑨ linux安裝了docker之後,用ifconfig指令看多了一個docker0,怎麼關掉
我們在使用docker
run創建Docker容器時,可以用--net選項指定容器的網路模式,Docker有以下4種網路模式:
host模式,使用--net=host指定。
container模式,使用--net=container:NAME_or_ID指定。
none模式,使用--net=none指定。
bridge模式,使用--net=bridge指定,默認設置。
默認選擇bridge。
⑩ docker網路問題 怎麼解決
網路基礎 Docker 現有的網路模型主要是通過使用 Network namespace、Linux Bridge、iptables、veth pair 等技術實現的。(出處8) Network namespace:它主要提供了網路資源的隔離,包括網路設備、IPv4/IPv6 協議棧、IP 路由表、防火牆、/proc/net 目錄、/sys/class/net 目錄、埠(socket)等。 Linux Bridge:功能相當於物理交換機,為連在其上的設備(容器)轉發數據幀,如 docker0 網橋。 Iptables:主要為容器提供 NAT 以及容器網路安全。 veth pair:兩個虛擬網卡組成的數據通道。在 Docker 中,用於連接 Docker 容器和 Linux Bridge。一端在容器中作為 eth0 網卡,另一端在 Linux Bridge 中作為網橋的一個埠。 容器的網路模式 用來設置網路介面的 docker run --net 命令,它的可用參數有四個: none:關閉了 container 內的網路連接。容器有獨立的 Network namespace,但並沒有對其進行任何網路設置,如分配 veth pair 和網橋連接,配置 IP 等。 bridge:通過 veth 介面來連接其他 container。這是 docker 的默認選項。 host:允許 container 使用 host 的網路堆棧信息。容器和宿主機共享 Network namespace。 container:使用另外一個 container 的網路堆棧信息。kubernetes 中的 pod 就是多個容器共享一個 Network namespace。 我們需要從中選一個作為我們的網路方案,實際上只有 bridge 和 host 兩種模式可選。(想了解這四個參數,請翻到附錄B之 Network settings。) 在 docker 默認的網路環境下,單台主機上的容器可以通過 docker0 網橋直接通信,如下圖(圖作者馮明振)所示: