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. javascript面向对象习题答案

    第二章 1.如果我们在控制台中执行下列语句,结果分别是什么?为什么? var a; typeof a; undefined > var s = '1s'; s++; NaN > !!&qu ...

  2. pyltp安装踩坑记录

    LTP(Language Technology Platform)由哈工大社会计算与信息检索研究中心开发,提供包括中文分词.词性标注.命名实体识别.依存句法分析.语义角色标注等丰富. 高效.精准的自然 ...

  3. 《.NET 进阶指南》读书笔记1------NET程序集与普通EXE文件的区别

    开发人员将源文件编译之后生成的中间件,我们称之为"程序集".因为程序集文件名一般以.EXE(或者DLL)结尾,因此很容易将它与传统开发过程中的EXE文件(或者DLL文件)搞混淆.虽 ...

  4. C#中文件下载的几种方法演示源码

    内容过程,把内容过程比较重要的内容做个珍藏,如下的内容是关于C#中文件下载的几种方法演示的内容,应该是对各朋友有较大好处. using System;using System.Data;using S ...

  5. 教你一步永久激活WebStorm2018

    工欲善其事必先利其器,我们在开发过程中,编辑器是我们提高开发效率及生产必备的工具,如何发现一个高效好用的编辑器是程序员必备的技能之一. 前端开发有众多编辑器 sublime.vscode.webstr ...

  6. LAMP动静分离安装(源码安装)

    环境: 版本 IP地址 源码包版本 Centos7.5_mysql 192.168.111.3 mysql-5.7.24.tar.gz,cmake-3.13.1.tar.gz,boost_1_59_0 ...

  7. mysql export mysqldump version mismatch upgrade or downgrade your local MySQL client programs

    I use MySQL Community Edition and I solved this problem today. goto https://dev.mysql.com/downloads/ ...

  8. Why Ambari is setting the security protocol of the kafka to PLAINTEXTSASL instead of SASL_PLAINTEXT?

    首页 / Data Ingestion & Streaming / Why Ambari is setting the security protocol of the kafka to PL ...

  9. jupyter notebook修改默认路径和浏览器

    1.jupyter notebook --generate-config 2.修改jupyter_notebook_config.py配置文件 3.修改默认路径: c.NotebookApp.note ...

  10. 用Redis管理Session

    maven <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</ar ...