1.我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式:

· host模式,使用--net=host指定

· container模式,使用--net=container:NAME_or_ID指定

· none模式,使用--net=none指定

· bridge模式,使用--net=bridge指定,默认设置

  • 封闭容器        ---none
  • brigde桥接     ---虚拟桥
  • 联盟式容器         ---容器之间共享network虚拟桥
  • 享有宿主机网络  ---物理桥

Network container Archetypes:

2. 创建不同的容器网络

host模式:

  # docker run --name t3 -it --rm --network=host busybox:latest

none模式:

  # docker run --name t3 -it --rm --network=none busybox:latest

bridge模式(默认 即为bridge模式):

  # docker run --name t1 -it --rm --network=bridge busybox:latest

  或者

  # docker run --name t1 -it --rm busybox:latest

container模式:

  # docker run --name t1 -it --rm --network=bridge busybox:latest

  # docker run --name t2 -it --rm --network=container:t1 busybox:latest

3. 创建虚拟网卡并配置实现不同namespace通信

[root@maple-master ~]# ip netns help
# 创建r1 r2 namespace
# ip netns add r1
# ip netns add r2 # 在r1namespace中执行命令
# ip netns exec r1 xxx # ip link help #可以link 移动创建好的虚拟网卡到某个namespace
# 创建 虚拟网卡对veth1. veth1.
# ip link add name veth1. type veth peer name veth1. # 查看网卡
# ip link show
: veth1.@veth1.: <BROADCAST,MULTICAST,M-DOWN> mtu qdisc noop state DOWN mode DEFAULT group default qlen
link/ether :1b:a3::0b:ae brd ff:ff:ff:ff:ff:ff
: veth1.@veth1.: <BROADCAST,MULTICAST,M-DOWN> mtu qdisc noop state DOWN mode DEFAULT group default qlen # 将创建好的一个虚拟网卡移动到一个namespace中来通信
# ip link set dev veth1. netns r2
# ip netns exec r2 ifconfig -a # 激活宿主机和r2中的虚拟网卡
# ifconfig veth1. 10.1.0.1/ up
# ip netns exec r2 ifconfig veth1. 10.1.0.2/ up # 宿主机上测试ping
# ping 10.1.0.2
  • 同样的我们可以把veth1.1 移动到r1中来实现两个namespace的通信

4. docker run 命令扩展

# docker run --help

# docker run --name t1 -it --rm --network=bridge --hostname=maple6 --dns=8.8.8.8 --dns-search=ilinux.io busybox:latest

docker容器网络的更多相关文章

  1. Docker容器网络篇

    Docker容器网络篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker的网络模型概述 如上图所示,Docker有四种网络模型: 封闭式网络(Closed conta ...

  2. 【转】理解Docker容器网络之Linux Network Namespace

    原文:理解Docker容器网络之Linux Network Namespace 由于2016年年中调换工作的原因,对容器网络的研究中断过一段时间.随着当前项目对Kubernetes应用的深入,我感觉之 ...

  3. 两台主机间docker容器网络互通

    服务器1: 网络172.30.0.0/16 服务器2: 网络172.31.0.0/16 服务器1和服务器2上的docker容器网络之间是无法互通的,如果需要互通,需要做以下配置: 服务器1上执行: i ...

  4. docker容器网络bridge

    我们知道docker利用linux内核特性namespace实现了网络的隔离,让每个容器都处于自己的小世界里面,当这个小世界需要与外界(宿主机或其他容器)通信的时候docker的网络就发挥作用了,这篇 ...

  5. Docker容器网络-基础篇

    开源Linux 一个执着于技术的公众号 Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/N ...

  6. Docker容器网络配置

    Docker容器网络配置 1.Linux内核实现名称空间的创建 1.1 ip netns命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作.ip netns命令 ...

  7. 5、Docker容器网络

    使用Linux进行IP层网络管理的指     http://linux-ip.net/html/ # yum install iproute http://linux-ip.net/html/tool ...

  8. 初学Docker容器网络不得不看的学习笔记

    一.关于Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后 ...

  9. Docker 容器网络

    默认网络 当安装docker时,它会自动创建3个网络.可以使用docker network ls 来查看.   zane@zane-V:~$ docker network ls NETWORK ID ...

随机推荐

  1. PHP的简单跳转提示的实现

    在PHP开发中,尤其是MVC框架或者项目中,会碰到很多跳转情况,比如:登录成功或失败后的跳转等等. 以下以MVC框架开发中为基础,示例讲解: 在基础控制器类中:Conrtoller.class.php ...

  2. 【spring源码分析】IOC容器初始化(四)

    前言:在[spring源码分析]IOC容器初始化(三)中已经分析了BeanDefinition注册之前的一些准备工作,下面将进入BeanDefinition注册的核心流程. //DefaultBean ...

  3. ubunru18.04下面安装docker

    sudo apt-get updat // 更新apt包索引 sudo apt-get remove docker docker-engine docker-ce docker.io // 卸载旧版本 ...

  4. json和java对象相互转换

    json和java对象相互转换 springboot中json转换默认使用的是jackson包,通过spring-boot-starter-web依赖的 1 在属性上添加注解@JsonFormat(p ...

  5. 从输出日志中提取接口的入参和返回做为用例导入到excel中

    1  背景 接口用例已经在项目中的yml文件中编写,但是yml文件不能做为交付文档用,本文对工作中从接口输出日志中提取用例信息,并导入到excel文件中做了总些 2  工具 idea,notepad+ ...

  6. Cordova入门系列(三)Cordova插件调用 转发 https://www.cnblogs.com/lishuxue/p/6018416.html

    Cordova入门系列(三)Cordova插件调用   版权声明:本文为博主原创文章,转载请注明出处 上一章我们介绍了cordova android项目是如何运行的,这一章我们介绍cordova的核心 ...

  7. libgdx学习记录2——文字显示BitmapFont

    libgdx对中文支持不是太好,主要通过Hireo和ttf字库两种方式实现.本文简单介绍最基本的bitmapfont的用法. 代码如下: package com.fxb.newtest; import ...

  8. 随心测试_软测基础_004<测试人员工作职责>

    接上篇续,依据_软测基础体系:<依据不同的测试对象,选取适合的方法,按照设计的流程完成测试工作,检验整个过程是否达到测试的目的>.“学以致用”,实践于工作职责 常见面试题: —— 诸如以下 ...

  9. 使用栈实现队列(1)(Java)

    class MyQueue { private Stack s1; private Stack s2; public MyQueue(int size) { this.s1 = new Stack(s ...

  10. Spring Boot与缓存

    ---恢复内容开始--- JSR-107.Spring缓存抽象.整合Redis 一.JSR107 Java Caching定义了5个核心接口,分别是CachingProvider, CacheMana ...