docker 指定网卡_Docker | Docker技术基础梳理(五) Docker网络管理

fc07895331f579eb83099a771612885c.png

为什么需要容器的网络管理?

容器的网络默认与宿主机、与其他容器相互隔离,且容器中可以运行一些网络应用,比如nginx、web应用、数据库等,如果需要让外部也可以访问这些容器中运行的网络应用,那么就需要配置网络来实现。

同样的,不同需求下,容器与宿主机的通信有不同的业务状态这时候就需要容器网络管理以达成管理不同业务下相关的网络配置。

Docker中的网络驱动模式有那些?

bridge network(网桥)模式:默认的网络模式,类似虚拟机的nat模式

host network(主机)模式:容器与宿主机之间的网络无隔离,即容器直接使用宿主机网络

none network模式:容器禁用所有网络

overlay network(覆盖)模式:利用vxlan实现的bridge模式

macvlan network模式:容器具备MAC地址,使其在外部看来是一台真实的网络设备

Docker网络管理命令浅析

查看网络(docker network ls)

命令格式: docker network ls [参数]

常用参数:

-q 只显示网络对象的ID

注意: docker安装之后,会自动创建bridge、host、none三种网络驱动。

创建网络(docker network create)

命令格式:docker network create [参数] 网络

常用参数:

-d 指定网络的驱动,不指定默认为bridge
-- subnet 指定子网网段(192.168.0.0/16)
-- ip-range 指定容器的IP范围
-- gateway 子网的网关

注意:

  • 创建网络部分参数,涉及到网络工程师相关的知识,这里不做详细介绍有需要可以参考「计算机网络」这本书,内有详解。

  • host、none模式的网络只能存在一个,再次创建会报错。

  • overlay网络创建依赖于docker swarm(集群负载均衡)服务

网络删除(docker network rm)

删除一个或多个网络

命令格式:docker network rm 网络[网络..]

查看网络详细信息(docker network inspect)

命令格式:

docker network inspect [参数] 网络

docker inspect [参数] 网络

常用参数:

-f 根据format输出结果
302305669e068883c07f791ca7e3f4bd.png
使用网络(docker run)

命令格式:docker run/create --network 网络

注意:默认情况下,docker创建或启动容器时,会默认使用名为bridge的网络

网络连接与断开(docker network connect /disconnect)

命令格式:

docker network connect/disconnect [参数] 网络 容器

常用参数:

-f 强制断开连接

Docker网络模式简介

bridge网络模式
  1. bridge网络模式的特点:

  • 宿主机上需要单独的bridge网卡,如默认docker默认创建的docker0。

  • 容器之间、容器与主机之间的网络通信,是借助为每一个容器生成的一对veth pair虚拟网络设备对,进行通信的。一个在容器上,另一个在宿主机上。(这是网桥)

  • 每创建一个基于bridge网络的容器,都会自动在宿主机上创建一个veth**虚拟网络设备。
    外部无法直接访问容器。需要建立端口映射才能访问。(可以理解为网卡)

  • 容器借由veth虚拟设备通过如docker0这种bridge网络设备进行通信。

  • 每一容器具有单独的IP

  • bridge网络模式下宿主机与容器服务使用的端口可以重复

ef2294b1473e5fac47baea3ccf338eac.png
bridge原理示意图
  1. bridge网络模式下的端口映射
    根据上面关于bridge的特点我们可以知道访问bridge网络模式的设备,需要端口映射。

端口映射的命令格式:docker run/create -P/-p

命令参数:

-P 将容器内部所有暴露端口进行随机映射
-p 手动指定端口映射 (-p [宿主机IP] : [宿主机端口] : 容器端口)

关于-p参数的举例:

80 将容器的
host网络模式

host网络模式的特点:

  • 容器完全共享宿主机的网络,网络没有隔离。宿主机的网络就是容器的网络。

  • 容器、主机上的应用所使用的端口不能重复。

  • 外部可以直接访问容器,不需要端口映射

  • 容器IP就是宿主机的IP

530ec6b33bf403e4cb7032f3d532678f.png
host网络模式示意图

除了普通的host网络模式外,同样还有特殊版本的host网络模式(container网络模式)。

container网络模式的特点:

其实就是容器共享其他容器的网络,相当于该容器,在网络层面上,将其他容器作为“主机”。它们之间的网络没有隔离。

760610ac502bb15c2aea418212f88434.png
container网络模式

container网络模式的使用:

docker run/create --network container:容器

none、overlay与macvlan网络模式

none网络模式的特点:

  • 容器上没有网络,也无需任何网络设备

  • 如果需要使用网络,需要用户自行安装与配置

overlay网络模式的特点:

  • overlay网络模式实现方案有很多种,在Docker自身集成了一种,基于VXLAN隧道技术实现

  • overlay网络主要用于实现跨主机容器之间的通信

macvlan网络模式的特点:

  • macvlan的主要特点就是通信直接基于mac地址进行转发

  • 在macvlan中宿主机担任的角色是一台二层交换机,docker会维护一张mac地址表,当宿主机收到数据包时,直接根据mac地址找到对应的容器

  • 而在容器内部互相通信的时候,容器直接使用IP互通,所以每个容器对于外面的网络都是一台真实的网络设备

总结

这次文章主要复习了docker的网络管理的内容,其中host,bridge,container是主要的复习内容,且在三种网络模式中建议优先选用host网络模式,其使用性能最优。

3661db14e2818d7bb829edf41df8d3a8.pngc862312185f9a88779e0b6ed4fd482a7.png

咸鱼普拉思

一只咸鱼在编程路上的摸爬滚打,记录摸索中的点点滴滴。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android安装两次才成功,Android应用从市场安装完成打开与桌面打开,被启动两次的问题...

问题描述:1、从Android应用市场下载并安装应用,安装完成后,当前界面下方会出现“打开”按钮,这时候我们点击“打开”,会启动应用,进入到应用的启动页面,然后进入应用的主界面,这个时…

事务保存点

在SQL Server中使用rollback会回滚所有的未提交事务状态,但是有些时候我们只需要回滚部分语句,把不需要回滚的语句提到事务外面来,虽然是个方法,但是却破坏了事务的ACID。 SQL中使用事务保存点 即可解决这个问题. 一.SQL 事务中存…

鼎信诺审计前端取数工具_给2019前端的5个建议

2019 农历新年即将到来,是时候总结一下团队过去一年的技术沉淀。过去一年我们支撑的数据相关业务突飞猛进,其中两个核心平台级产品代码量分别达到30万行和80万行,TS 模块数均超过1000个,协同开发人员增加到20人。由于历史原因&…

Hadoop HA

HA概念: high avalability 高可用性。 hadoop 1.x非ha设计 Secondnode对元数据的可靠性有了保障,但服务的可用性不高。 即:当Namenode节点宕机了,整个hadoop就不能使用了,影响了client的使用。 hadoop 2.x的ha设计 新…

紫光展锐处理器有那些手机用_酷派将发千元5G手机,国产紫光展锐加持,主打性价比...

↑↑↑点击上方蓝字订阅每日最新热点手机资讯数年之前,“中华酷联”是国产智能手机的四大代表。不过随着越来越多的强力竞争者入局,中兴、酷派、联想渐渐衰败,仅剩华为屹立手机行业顶端。但是酷派似乎从未想过放弃,最近便要发布一…

jelly bean android,Jelly Bean占Android系统份额突破10%

Android系统份额图(腾讯科技配图)腾讯科技讯(清雨)北京时间1月4日消息,据国外媒体报道,微博)周四发布最新数据显示,Android 4.1版本和Android 4.2版本的Jelly Bean在Android系统中的份额超过了10%,另外Android 4.0版本的ICS的份额…

妲己机器人需要什么条件才能使用_estar零封YTG:平头哥快乐电竞,只有妲己没亚瑟,差评...

2020KPL秋季赛常规赛第8周最后1个比赛日的第2场比赛,结果已经尘埃落定了。而最终的比赛结果是:estarpro轻松以3比0的大比分零封战胜YTG。有一说一,这一场比赛真的是毫无悬念啊,甚至双方交手的第1小局比赛,estarpro只用…

python离线录音转文字_Python将文字转成语音并读出来的实例详解

前言 本篇文章主要介绍,如何利用Python来实现将文字转成语音。将文字转成语音主要有两种不同的实现方法:先将文字转成语音,然后再通过读取语音实现发音、直接调用系统内置的语音引擎实现发音,后一种方法的实现主要利用第三方库。 …

魅族15系统是android,魅族15系列评测:性能够用王者荣耀优化

硬件性能:中配够用,高配优秀硬件方面,文章前面的参数表已经写得很清楚,魅族15搭载的是高通骁龙660处理器,并配备4GB的运行内存;魅族15 Plus则搭载三星Exynos 8895,配备6GB运行内存。在目前的移动…

.net 怎么循环得到数组里的值_HashMap 底层实现、加载因子、容量值及死循环

写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下!GitHub地址:abel-max/Java-Study-NoteHashMap 简介HashMap 是一个基于哈希表…

hdfs命令

bin/hdfs dfs命令 appendToFile Usage: hdfs dfs -appendToFile <localsrc> ... <dst> 追加一个或者多个文件&#xff08;linux文件&#xff09; <localsrc> ...到hdfs制定文件<dst>中.也可以从命令行读取输入. hdfs dfs -appendToFile localfile /use…

eclipse jdk配置_eclipse的安装和jdk的配置(JAVA)

首先需要到eclipse官网下载(eclipse.org)点击download进入新界面点击download 64bit进入新界面 点击划线的&#xff0c;点击download也许但是比较慢&#xff0c;点击划线的会出现扩展选项&#xff0c;选择距离你比较近的节点(速度比较快)作者选的是C…

webview跟html通信的原理,1.iOS: webView与html的交互

摘要:由于最近的项目中大部分功能需要 iOS 原生端与 html 进行交互才能完美实现,所以对 iOS 与 html 的交互方式进行了学习,这篇文章主要介绍 WebViewJavascriptBridge 框架的使用.至于原生的 JavaScriptCore.framework 就不多介绍了,同时在这里推荐一个比较好的博客.http://bl…

HDFS Federation(HDFS 联盟)介绍

1. 当前HDFS架构和功能概述 我们先回顾一下HDFS功能。HDFS实际上具有两个功能&#xff1a;命名空间管理&#xff08;Namespace management&#xff09;和块/存储管理服务&#xff08;block/storage management&#xff09;。 1.1 命名空间管理 HDFS的命名空间包含目录、文件和块…

linux java 部署 生产环境

2019独角兽企业重金招聘Python工程师标准>>> 下载文件 首先进入网页&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 点击Accept License Agreement后选择jdk-8u161-linux-x64.tar.gz&#xff0c;下载。 配置环…

华为鸿蒙发布作文,华为鸿蒙OS定档6月2日发布!MatePad Pro 2或同台亮相:首发预装...

5月25日一早&#xff0c;原华为EMUI官微就正式宣布更名为Harmony OS&#xff0c;并宣布将在6月2日晚20点召开鸿蒙操作系统及华为全场景新品发布会&#xff0c;届时将正式发布鸿蒙OS正式版。据近期进行开发者测试的用户反馈&#xff0c;鸿蒙OS目前已经非常完善&#xff0c;且稳定…

python如何根据数据画散点图_如何用python画出样本的散点图?

用python画样本散点图的方法&#xff1a; 数据&#xff08;取第一列作为x&#xff0c;取第四列作为y&#xff09;如下&#xff1a;实现代码如下&#xff1a;import matplotlib.pyplot as plt import numpy as np # 定义画散点图的函数 def draw_scatter(n, s): ""&qu…

Hadoop RPC框架

原文&#xff1a;http://blog.csdn.net/thomas0yang/article/details/41211259 ---------------------------------------------------------------------------------------------- 1、RPC框架概述1.1 RPC&#xff08;Remote Procedure Call Protocol&#xff09;——远程过程…

centos7 校正linux系统时间_Linux系统:Centos7下搭建ClickHouse列式存储数据库

一、ClickHouse简介1、基础简介Yandex开源的数据分析的数据库&#xff0c;名字叫做ClickHouse&#xff0c;适合流式或批次入库的时序数据。ClickHouse不应该被用作通用数据库&#xff0c;而是作为超高性能的海量数据快速查询的分布式实时处理平台&#xff0c;在数据汇总查询方面…

html调用js页面显示不出来了,JS代码文件调用显示乱码,直接写在html页面的里可以调用,但是单独放在js文件里不能调用...

最近遇到了一个很奇怪的问题&#xff0c;就是在HTML网页代码里直接写JS代码可以正常运行的代码&#xff0c;使用JS文件调用就不行。var cities [ {"name" : "北京"}, {"name" : "上海"}, {"name" : "广州"} ];$(…