黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Docker教程
Docker安裝
Docker使用
Docker實例

Docker Macvlan網(wǎng)絡(luò)驅(qū)動使用詳解

能夠?qū)⑷萜骰瘧?yīng)用連接到外部系統(tǒng)以及物理網(wǎng)絡(luò)的能力是非常必要的。常見的例子是部分容器化的應(yīng)用——應(yīng)用中已容器化的部分需要與那些運行在物理網(wǎng)絡(luò)和 VLAN 上的未容器化部分進行通信。

Docker 內(nèi)置的 Macvlan 驅(qū)動(Windows 上是 Transparent)就是為此場景而生。通過為容器提供 MAC 和 IP 地址,讓容器在物理網(wǎng)絡(luò)上成為“一等公民”。下圖展示了具體內(nèi)容。

Macvlan 的優(yōu)點是性能優(yōu)異,因為無須端口映射或者額外橋接,可以直接通過主機接口(或者子接口)訪問容器接口。但是,Macvlan 的缺點是需要將主機網(wǎng)卡(NIC)設(shè)置為混雜模式(Promiscuous Mode),這在大部分公有云平臺上是不允許的。

所以 Macvlan 對于公司內(nèi)部的數(shù)據(jù)中心網(wǎng)絡(luò)來說很棒(假設(shè)公司網(wǎng)絡(luò)組能接受 NIC 設(shè)置為混雜模式),但是 Macvlan 在公有云上并不可行。

接下來通過圖片和一個假想場景加深對 Macvlan 的理解。

假設(shè)有一個物理網(wǎng)絡(luò),其上配置了兩個 VLAN——VLAN 100:10.0.0.0/24 和 VLAN 200:192.168.3.0/24,如下圖所示。

接下來,添加一個 Docker 主機并連接到該網(wǎng)絡(luò),如下圖所示。

有一個需求是將容器接入 VLAN 100。為了實現(xiàn)該需求,首先使用 Macvlan 驅(qū)動創(chuàng)建新的 Docker 網(wǎng)絡(luò)。但是,Macvlan 驅(qū)動在連接到目標網(wǎng)絡(luò)前,需要設(shè)置幾個參數(shù)。比如以下幾點。

? 子網(wǎng)信息。

? 網(wǎng)關(guān)。

? 可分配給容器的IP范圍。

? 主機使用的接口或者子接口。

下面的命令會創(chuàng)建一個名為 macvlan100 的 Macvlan 網(wǎng)絡(luò),該網(wǎng)絡(luò)會連接到 VLAN 100。

$ docker network create -d macvlan \
--subnet=10.0.0.0/24 \
--ip-range=10.0.00/25 \
--gateway=10.0.0.1 \
-o parent=eth0.100 \
macvlan100

該命令會創(chuàng)建 macvlan100 網(wǎng)絡(luò)以及 eth0.100 子接口。當前配置如下圖所示。

Macvlan 采用標準 Linux 子接口,需要為其打上目標 VLAN 網(wǎng)絡(luò)對應(yīng)的 ID。在本例中目標網(wǎng)絡(luò)是 VLAN 100,所以將子接口標記為 .100(etho.100)。

通過 --ip-range 參數(shù)告知 Macvlan 網(wǎng)絡(luò)在子網(wǎng)中有哪些 IP 地址可以分配給容器。這些地址必須被保留,不能用于其他節(jié)點或者 DHCP 服務(wù)器,因為沒有任何管理層功能來檢查 IP 區(qū)域重合的問題。

macvlan100 網(wǎng)絡(luò)已為容器準備就緒,執(zhí)行以下命令將容器部署到該網(wǎng)絡(luò)中。

$ docker container run -d --name mactainer1 \
--network macvlan100 \
alpine sleep 1d

當前配置如下圖所示。但是切記,下層網(wǎng)絡(luò)(VLAN 100)對 Macvlan 的魔法毫不知情,只能看到容器的 MAC 和 IP 地址。在該基礎(chǔ)之上,mactainer1 容器可以 ping 通任何加入 VLAN 100 的系統(tǒng),并進行通信。

注意:如果上述命令不能執(zhí)行,可能是因為主機 NIC 不支持混雜模式。切記公有云平臺不允許混雜模式。

目前已經(jīng)擁有了 Macvlan 網(wǎng)絡(luò),并有一臺容器通過 Macvlan 接入了現(xiàn)有的 VLAN 當中。但是,這并不是結(jié)束。Docker Macvlan 驅(qū)動基于穩(wěn)定可靠的同名 Linux內(nèi)核驅(qū)動構(gòu)建而成。

因此,Macvlan 也支持 VLAN 的 Trunk 功能。這意味著可以在相同的 Docker 主機上創(chuàng)建多個 Macvlan 網(wǎng)絡(luò),并且將容器按照下圖的方式連接起來。

以上內(nèi)容基本能涵蓋 Macvlan。Windows 也提供了類似的解決方案 Transparent 驅(qū)動。

用于故障排除的容器和服務(wù)日志

當認為遇到容器間網(wǎng)絡(luò)連接問題時,檢查 daemon 日志以及容器日志(應(yīng)用日志)是非常有必要的。

在 Windows 上,daemon 日志存儲在 ∼AppData\Local\Docker,可以通過 Windows 事件查看器來瀏覽。在 Linux 上,daemon 日志的存儲位置取決于當前系統(tǒng)正在使用的初始化方式。

如果是 Systemd,日志會存儲在 Journald,并且可以通過journalctl -u docker.service 命令查看;如果不是 Systemd 讀者需要查看如下位置。

? Ubuntu 系統(tǒng):upstart:/var/log/upstart/docker.log。

? RHEL 系列:systems:/var/log/messages。

? Debian:/var/log/daemon.log。

? Mac 版 Docker:∼/Library/Containers/com.docker.docker/Data/com. docker.driver.amd64-linux/console-ring。

還可以設(shè)置 daemon 日志的詳細程度。可以通過編輯 daemon 配置文件(daemon.json),將 debug 設(shè)置為 true,并同時設(shè)置 log-level 為下面的某個值。

? debug:最詳細的日志級別。

? info:默認值,次詳細日志級別。

? warn:第三詳細日志級別。

? error:第四詳細日志級別。

? fatal:最粗略的日志級別。

下面的片段摘自 daemon.json,其中開啟了調(diào)試模式,并設(shè)置日志級別為 debug。該配置在所有 Docker 平臺均有效。

{
    <Snip>
    "debug":true,
    "log-level":"debug",
    <Snip>
}

修改配置文件之后,需要重啟 Docker 才會生效。這就是 daemon 日志了。容器日志又是什么?

可以通過 docker container logs 命令查看單獨的容器日志,通過 docker service logs 可以查看 Swarm 服務(wù)日志。但是,Docker 支持多種日志驅(qū)動,并不是每種都能通過 docker logs 命令查看的。

就像引擎日志的驅(qū)動和配置一樣,每個 Docker 主機也為容器提供了默認的日志驅(qū)動以及配置。其中包括 json-file(默認)、journald(只在運行 systemd 的 Linux 主機中生效)、syslog、splunk 和 gelf。

json-file 和 journald 可能是較容易配置的,并且均可通過 doker logs docker service logs 命令查看。具體命令格式為:

docker logs <container-name> 和 docker service logs <service-name>

如果采用了其他日志驅(qū)動,可以通過第三方平臺提供的原生工具進行查看。

下面的片段為 daemon.json 文件的一部分,展示如何配置 Docker 主機使用 syslog 方式。

{
    "log-driver": "syslog"
}

可以為某個容器或者服務(wù)配置單獨的日志策略,只需在啟動的時候通過 --log- driver 和 --log-opts 指定特定的日志驅(qū)動即可。這樣會覆蓋掉 daemon.json 中的配置。

容器日志生效的前提是應(yīng)用進程在容器內(nèi)部 PID 為 1,并且將正常日志輸出到 STDOUT,將異常日志輸出到 STDERR。日志驅(qū)動就會將這些“日志”轉(zhuǎn)發(fā)到日志驅(qū)動配置指定的位置。

如果應(yīng)用日志是寫到某個文件的,可以利用符號鏈接將日志文件重定向到 STDOUT 和 STDERR。

下面的例子展示了通過運行 docker logs 命令查看某個使用 json-file 日志驅(qū)動,并且名為 vantage-db 容器的日志。

$ docker logs vantage-db
1:C 2 Feb 09:53:22.903 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 2 Feb 09:53:22.904 # Redis version=4.0.6, bits=64, commit=00000000, modi\
fied=0, pid=1
1:C 2 Feb 09:53:22.904 # Warning: no config file specified, using the defaul\
t config.
1:M 2 Feb 09:53:22.906 * Running mode=standalone, port=6379.
1:M 2 Feb 09:53:22.906 # WARNING: The TCP backlog setting of 511 cannot be e\
nforced because...
1:M 2 Feb 09:53:22.906 # Server initialized
1:M 2 Feb 09:53:22.906 # WARNING overcommit_memory is set to 0!

通常是很有可能在 daemon 日志或者容器日志中找到網(wǎng)絡(luò)連接相關(guān)異常的。

全部教程
主站蜘蛛池模板: 在线观看成年人网站 | 天天弄天天模 | 国产免费黄色网址 | 国产1024精品视频专区免费 | 99精品欧美一区 | 久久免费区一区二区三波多野 | 窝窝午夜影院 | yy4138理论片在线大全 | 六月丁香综合网 | 午夜看黄网站免费 | 欧美日韩成人在线 | 日韩在线不卡一区在线观看 | 九九成人免费视频 | 香港经典三级成人xxx | 欧美精品xxxxbbbb | 国产视频一区二区在线观看 | 高清欧美不卡一区二区三区 | 一本大道香蕉大vr在线吗视频 | 国产第一页福利 | 日韩欧美片 | 成年人视频黄色 | 久久精品国产免费中文 | 成人影库| 天天摸天天爽天天澡视频 | 草草国产成人免费视频 | 日韩欧美国产精品 | 亚洲第一二三四区 | 七色永久性tv网站免费看 | 精品国产一区二区三区19 | 亚洲欧美日韩国产精品 | 一级乱理中文字幕韩国 | 秋霞国产一级特黄 | 最近2019中文字幕免费大全5 | 天天狠狠 | 亚洲黄色一级大片 | 国产成人刺激视频在线观看 | 黄视频在线观看www免费 | 久久中文字幕免费视频 | 欧美另类日韩中文色综合 | 欧美性生交xxxxx久久久 | 天天好比|