docker网络.md

#docker 网络模式

环境 centos7.4 , Docker version 17.12.0-ce

docker自带网络类型 bridge,host,none,container,overlay,macvlan

#本地网络

bridge 		# --net=bridge 默认模式,NAT转发
host # --net=host 使用宿主机网络
container # --net=container:容器名或ID ,共用其它容器网络
none # --net=none 无网卡

#跨主机网络

overlay  #vxlan模式
macvlan #使用外部lan,需手动配置
#可以使用其它网络插件

#查看docker网络

docker network ls

#docker修改本地默认网段

#docker启动默认创建docker0网桥172.17网段
#添加自定义网段
SetOPTS=" --bip=192.168.55.1/24"
sed -i "s#^ExecStart.*#& $SetOPTS #" /usr/lib/systemd/system/docker.service
grep 'ExecStart' /usr/lib/systemd/system/docker.service
#重启docker
systemctl daemon-reload
systemctl restart docker ifconfig docker0 |egrep 'inet |flags' #查看docker0网桥ip已改
#可使用自定义网桥,创建br0,修改配置 -b=br0

#docker本地网络实践

#不指定网络,使用默认bridge
docker run -dit --name busybox1 busybox
docker exec -it busybox1 ifconfig #查看网络 #host网络
docker run -dit --name busybox-host --net=host busybox
docker exec -it busybox-host ifconfig #查看网络,与宿主机一样 #container网络
docker run -dit --name busybox2 --net=container:busybox1 busybox #使用busybox1网络
docker exec -it busybox1 ifconfig #查看网络 #none没网络
docker run -dit --name busybox-none --net=none busybox
docker exec -it busybox-none ifconfig

#创建本地网络mynet1(自定义网络能设置固定ip)

docker network create --subnet 192.168.58.0/24 --gateway 192.168.58.1 mynet1
docker run -dit --name busybox3 --network mynet1 --ip=192.168.58.18 busybox
docker exec busybox3 ifconfig |egrep 'inet|flags' #查看容器网络

#docker 容器 添加网卡

docker network connect mynet1 --ip 192.168.58.8 busybox1  #给容器添ip
docker exec $(docker ps -l -q) ifconfig |egrep 'inet|flags' #查看网络
docker network disconnect mynet1 busybox1 #断开网络,再次查看网络……

#删除测试容器、网络

docker rm -f busybox1 busybox2 busybox3 busybox-host busybox-none
docker network rm mynet1

#docker跨主机通信

#overlay网络

本次在docker swarm集群操作

创建docker swarm 集群参考http://www.cnblogs.com/elvi/p/8424378.html

docker swarm集群创建容器,会自动创建overlay网络ingress

docker network ls #查看网络

#创建overlay类型网络mynet2,并设置网段、网关

docker network create -d overlay --subnet 192.168.59.0/24 --gateway 192.168.59.1 mynet2
docker network inspect mynet2 #查看网络参数

#swarm集群使用自定义网段mynet2

docker service create --name nginx2  --replicas 2 \
-p 81:80 --network mynet2 hub.test.com:5000/almi/nginx:0.1
#hub.test.com:5000/almi/nginx:0.1 为内网私有仓库镜像
docker service ls
#swarm集群创建容器默认2个网卡,增加了自定义网卡
docker exec $(docker ps -l -q) ifconfig |egrep 'inet|flags' #查看网络

#删除测试

docker service rm nginx2
docker network rm mynet2
docker network prune #删除未使用的网卡

# macvlan网络

#宿主机开启网卡混杂模式

ip link set eth0 promisc on
ifconfig eth0 |egrep 'inet |flags'

#创建macvlan模式网络macnet

docker network create -d macvlan -o parent=eth0 macnet \
--subnet 172.16.50.0/24 --gateway 172.16.50.1

#创建容器

docker run -d --name nginx3 --net macnet hub.test.com:5000/almi/nginx:0.1
docker exec nginx3 ping -c 4 nginx3 #测试获取ip成功
#其它docker节点创建网络、容器,然后ping测试

#删除测试

docker rm -f $(docker ps -l)
docker network rm macnet

本次macvlan测试环境为虚拟机,获取外部vlan失败

宿主机配置vlan网络+macvlan模式,实现docker vlan网络

使用macvlan,无法与宿主机通信

docker网络实践的更多相关文章

  1. docker 网络实践

    #docker 网络模式 环境 centos7. , Docker version -ce docker自带网络类型 bridge,host,none,container,overlay,macvla ...

  2. Docker网络实践运用

    Docker 容器网络概述 要构建具有安全的一致行为的 Web 应用程序,可以使用 Docker 网络特性.根据定义,网络为容器实现了完全隔离.因此,控制应用程序所在的网络很重要.Docker 容器网 ...

  3. 【转】Docker网络详解及pipework源码解读与实践

    好文必转 原文地址: http://www.infoq.com/cn/articles/docker-network-and-pipework-open-source-explanation-prac ...

  4. Docker 网络详解及 pipework 源码解读与实践

    转载自:https://www.infoq.cn/article/docker-network-and-pipework-open-source-explanation-practice/ Docke ...

  5. Docker网络模式

    [编者的话] 本文是<Docker网络及服务发现>一书的一个章节,介绍了搭建Docker单主机网络的基础内容.关于Docker网络的更多内容,包括多主机的网络,请参考该书的其他章节. @C ...

  6. Docker网络解决方案-Flannel(转)

    转自https://www.cnblogs.com/kevingrace/p/6859114.html Docker跨主机容器间网络通信实现的工具有Pipework.Flannel.Weave.Ope ...

  7. docker 网络的几种模式

    docker 网络分为单机和多机,我们来了解一下docker的单机网络 docker单机网络分为以下几种: 1)bridge NetWork,使用--net=bridge指定,默认设置.2)Host ...

  8. Docker 网络基础介绍

    [编者按]本文作者为 Mesosphere 开发大使 Michael Hausenblas,主要介绍配置 Docker 单主机网络的基本知识.文章系国内 ITOM 管理平台 OneAPM 编译呈现. ...

  9. Docker网络一览

    转自:http://dockone.io/article/1143 [编者的话]本文是Nuage Networks公司Filip Verloy的一篇博文,简介了一下Docker网络情况,单主机的四种模 ...

随机推荐

  1. JS PHP MySQL 字符长度

    摘要: js的string.length 属性取的是字符串的实际长度 php的str_len()函数取的是字符串的字节长度,中文utf-8占3个字节,gb2312占2个字节 mysql中的varcha ...

  2. imx6 socketcan 发送问题

    参考cansend 的方法进行发送can 数据. cansend 的生成,请查考:http://www.cnblogs.com/chenfulin5/p/6797756.html cansend 代码 ...

  3. [boostrap]debian下为arm创建debian和emdebian文件系统

    转自:http://www.cnblogs.com/qiaoqiao2003/p/3738552.html Debian系统本身包含对arm的支持,其包含的软件包最多,但是最终的文件系统要大一些. e ...

  4. ip: either "dev" is duplicate, or "type" is garbage

    Driver installation Nothing has to be done for the APF51Dev, the APF28Dev and the APF6Dev. For the A ...

  5. 二、thinkphp

    ## ThinkPHP 3.1.2 查询方式#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.普通查询方式 a.字符串 $arr=$m->wher ...

  6. [HTML5] 手机摇一摇实现

    目录结构 引入jQuery:jquery-1.11.1.min.js html代码 <!DOCTYPE html> <html lang="en"> < ...

  7. 【BZOJ】1096: [ZJOI2007]仓库建设(dp+斜率优化)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1096 首先得到dp方程(我竟然自己都每推出了QAQ)$$d[i]=min\{d[j]+cost(j+ ...

  8. jQuery实用技巧必备

    本文实例总结了经典且实用的jQuery代码开发技巧.分享给大家供大家参考.具体如下: 1. 禁止右键点击 $(document).ready(function(){  $(document).bind ...

  9. MathType中空格个数怎么显示

    在使用Word文档的时候很时候用原软件自带的公式编辑器不是很好用,也不方法.MathType就是来解决这个问题的,但是一些用户在使用过程中发现不会看究竟输了多少空格,只能估摸大概.下面本MathTyp ...

  10. 推荐一个 HTML5在线的流程图工具——ProcessOn

    一直想找个简单好用的UML建模工具,无意在茫茫百度中看见了网友推荐的N多工具,从中找了一个叫 ProcessOn 的工具,可以说非常棒.如果我是WEB开发人员,我肯定去深入研究HTML5啦,太令人着迷 ...