最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解docker的四種網(wǎng)絡(luò)方式

 更新時(shí)間:2017年02月07日 09:24:57   作者:尋覓神跡  
本篇文章主要介紹了深入理解docker的四種網(wǎng)絡(luò)方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

bridge方式(默認(rèn))

Host IP為186.100.8.117, 容器網(wǎng)絡(luò)為172.17.0.0/16

下邊我們看下docker所提供的四種網(wǎng)絡(luò):

創(chuàng)建容器:(由于是默認(rèn)設(shè)置,這里沒指定網(wǎng)絡(luò)--net="bridge"。另外可以看到容器內(nèi)創(chuàng)建了eth0)

[root@localhost ~]# docker run -i -t mysql:latest /bin/bash
root@e2187aa35875:/usr/local/mysql# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
75: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
  inet 172.17.0.2/16 scope global eth0
    valid_lft forever preferred_lft forever
  inet6 fe80::42:acff:fe11:2/64 scope link
    valid_lft forever preferred_lft forever

容器與Host網(wǎng)絡(luò)是連通的:

root@e2187aa35875:/usr/local/mysql# ping 186.100.8.117
PING 186.100.8.117 (186.100.8.117): 48 data bytes
56 bytes from 186.100.8.117: icmp_seq=0 ttl=64 time=0.124 ms

eth0實(shí)際上是veth pair的一端,另一端(vethb689485)連在docker0網(wǎng)橋上:

[root@localhost ~]# ethtool -S vethb689485
NIC statistics:
   peer_ifindex: 75
[root@localhost ~]# brctl show
bridge name   bridge id        STP enabled   interfaces
docker0     8000.56847afe9799    no       vethb689485

通過Iptables實(shí)現(xiàn)容器內(nèi)訪問外部網(wǎng)絡(luò):

[root@localhost ~]# iptables-save |grep 172.17.0.*
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A FORWARD -d 172.17.0.2/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 5000 -j ACCEPT

none方式

指定方法: --net="none"

可以看到,這樣創(chuàng)建出來的容器完全沒有網(wǎng)絡(luò):

[root@localhost ~]# docker run -i -t --net="none" mysql:latest /bin/bash
root@061364719a22:/usr/local/mysql# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
root@061364719a22:/usr/local/mysql# ping 186.100.8.117
PING 186.100.8.117 (186.100.8.117): 48 data bytes
ping: sending packet: Network is unreachable

那這種方式,有什么用途呢?

實(shí)際上nova-docker用的就是這種方式,這種方式將網(wǎng)絡(luò)創(chuàng)建的責(zé)任完全交給用戶。

可以實(shí)現(xiàn)更加靈活復(fù)雜的網(wǎng)絡(luò)。

另外這種容器可以可以通過link容器實(shí)現(xiàn)通信。(后邊詳細(xì)說)

host方式

指定方法:--net="host"

這種創(chuàng)建出來的容器,可以看到host上所有的網(wǎng)絡(luò)設(shè)備。

容器中,對(duì)這些設(shè)備(比如DUBS)有全部的訪問權(quán)限。因此docker提示我們,這種方式是不安全的。

如果在隔離良好的環(huán)境中(比如租戶的虛擬機(jī)中)使用這種方式,問題不大。

container復(fù)用方式

指定方法: --net="container:name or id"

如下例子可以看出來,兩者的網(wǎng)絡(luò)完全相同。

[root@localhost ~]# docker run -i -t  mysql:latest /bin/bash
root@02aac28b9234:/usr/local/mysql# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
77: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
  inet 172.17.0.3/16 scope global eth0
    valid_lft forever preferred_lft forever
  inet6 fe80::42:acff:fe11:3/64 scope link
    valid_lft forever preferred_lft forever
[root@localhost ~]# docker run -i -t --net="container:02aac28b9234" mysql:latest /bin/bash
root@02aac28b9234:/usr/local/mysql# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
77: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
  link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
  inet 172.17.0.3/16 scope global eth0
    valid_lft forever preferred_lft forever
  inet6 fe80::42:acff:fe11:3/64 scope link
    valid_lft forever preferred_lft forever

舉例(openstack nova-docker中的網(wǎng)絡(luò)實(shí)現(xiàn)方式)

openstack的nova-docker插件可以向管理虛擬機(jī)一樣管理容器。

容器網(wǎng)絡(luò)的創(chuàng)建方式:首先創(chuàng)建--net="none"的容器,然后使用如下過程配置容器網(wǎng)絡(luò)。(以O(shè)VS為例,也可以使用linux bridge)

#創(chuàng)建veth設(shè)備
ip link add name veth00 type veth peer name veth01
#將veth設(shè)備一端接入ovs網(wǎng)橋br-int中
ovs-vsctl -- --if-exists del-port veth00 -- add-port br-int veth00 -- set Interface veth00 external-ids:iface-id=iface_id external-ids:iface-status=active external-ids:attached-mac=00:ff:00:aa:bb:cc external-ids:vm-uuid=instance_id
#啟動(dòng)ovs的新加端口
ip link set veth00 up 

#配置容器的網(wǎng)絡(luò)namespace
mkdir -p /var/run/netns
ln -sf /proc/container_pid/ns/net /var/run/netns/container_id

#將veth另一端加入容器namespace
ip link set veth01 netns container_id
#配置容器上該網(wǎng)絡(luò)設(shè)備的mac,ip,gateway
ip netns exec container_id ip link set veth01 address mac_address
ip netns exec container_id ifconfig veth01 ip 
ip netns exec container_id ip route replace default via gateway dev veth01

至此,容器與host上的虛擬網(wǎng)絡(luò)連通。之后br-int與br-ex/br-tun連通,最終實(shí)現(xiàn)與業(yè)務(wù)網(wǎng)絡(luò)的連通。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Windows Docker部署Jenkins的實(shí)現(xiàn)步驟

    Windows Docker部署Jenkins的實(shí)現(xiàn)步驟

    Jenkins是一款開源的持續(xù)集成工具,廣泛用于項(xiàng)目開發(fā),能提供自動(dòng)構(gòu)建測(cè)試部署等功能,本文主要介紹了Windows Docker部署Jenkins的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2024-03-03
  • Alpine Docker鏡像字體的問題解決操作

    Alpine Docker鏡像字體的問題解決操作

    這篇文章主要介紹了Alpine Docker鏡像字體的問題解決操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • k8s和Docker關(guān)系簡單說明

    k8s和Docker關(guān)系簡單說明

    這篇文章主要介紹了k8s和Docker關(guān)系簡單說明,本文利于圖文講解的很透徹,有需要的同學(xué)可以研究下
    2021-03-03
  • 兩小時(shí)入門Docker教程實(shí)踐

    兩小時(shí)入門Docker教程實(shí)踐

    這篇文章主要介紹了兩小時(shí)入門Docker教程實(shí)踐,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Docker基礎(chǔ)學(xué)習(xí)之?dāng)?shù)據(jù)管理

    Docker基礎(chǔ)學(xué)習(xí)之?dāng)?shù)據(jù)管理

    我們?cè)谑褂肈ocker 的時(shí)候,會(huì)產(chǎn)生很多數(shù)據(jù),比如web服務(wù)器啊,數(shù)據(jù)庫之類的,有時(shí)我們還需要備份或復(fù)制這些數(shù)據(jù),這就需要涉及到Docker的數(shù)據(jù)管理了。這篇文章就給大家詳細(xì)的介紹Docker的數(shù)據(jù)管理,感興趣的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • docker如何配置mysql主從復(fù)制

    docker如何配置mysql主從復(fù)制

    文章介紹了如何在CentOS 7上搭建一個(gè)MySQL集群,包括創(chuàng)建Docker環(huán)境、配置文件設(shè)置、創(chuàng)建和啟動(dòng)MySQL容器、設(shè)置遠(yuǎn)程訪問以及配置主從同步
    2024-12-12
  • docker容器無法stop的解決辦法

    docker容器無法stop的解決辦法

    在本篇文章里小編給大家整理了關(guān)于docker容器無法stop的解決辦法,有需要的朋友們可以參考下。
    2020-03-03
  • Docker容器添加自定義MySQL配置文件

    Docker容器添加自定義MySQL配置文件

    本文介紹在Docker容器中通過綁定掛載為MySQL添加自定義配置文件,包括確定綁定掛載目錄、創(chuàng)建配置文件、添加配置項(xiàng)、重啟容器和驗(yàn)證配置,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-11-11
  • 使用Docker安裝Jenkins的示例代碼

    使用Docker安裝Jenkins的示例代碼

    這篇文章主要介紹了使用Docker安裝Jenkins的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 如何一次重啟所有已停止的docker容器

    如何一次重啟所有已停止的docker容器

    這篇文章主要介紹了如何一次重啟所有已停止的docker容器問題,
    2024-01-01

最新評(píng)論

东辽县| 葵青区| 河东区| 九龙城区| 平定县| 肥东县| 新余市| 鲁山县| 易门县| 澄江县| 曲阜市| 息烽县| 大埔县| 佛冈县| 会理县| 通海县| 思茅市| 赣州市| 新竹市| 大埔县| 凉城县| 南涧| 郴州市| 新巴尔虎右旗| 邓州市| 怀化市| 曲阳县| 屯门区| 涡阳县| 镇康县| 武清区| 黎川县| 溧水县| 丰顺县| 昂仁县| 南汇区| 乳山市| 沁水县| 东台市| 齐河县| 四川省|