创建Docker容器后本来应该有新的命名空间(如果有独立网络的话),那么可以通过 ip netns 命令查看到命名空间,但是实际上却看不到. 查过资料才发现,ip netns 只能查看到 /var/run/netns 下面的网络命名空间.docker 不像OpenStack  neutron 会自动在这个文件创建命名空间名字,需要手动创建. 创建方法是: pid=`docker inspect -f '{{.State.Pid}}' $container_id` ln -s /proc/$pid…
在 Windows 下查询docker 主机的 IP 地址需要直接去网络中心查找虚拟机的 IP 地址,具体步骤: 进入网络中心 进入适配器更改选项 进入虚拟机 WSL 点击 属性 选中 IPv4 协议之后,点击属性 目标界面 这就是我们要 docker 主机地址…
1.判断运行时环境是否运行在docker中 参考:How to determine if a process runs inside lxc/Docker? 确定进程是否在LXC/Docker中运行?(就是前一篇文章的翻译) 2.如何获取docker宿主机ip docker容器中如何获取宿主机IP,连接宿主机的某个服务 如何从容器内部获取主机IP Docker Network Configuration 高级网络配置 例如 docker run -d  --add-host hostip:"yo…
docker 给容器配置ip(和主机一个网段).详情参考:http://www.xiaomastack.com/2015/02/06/docker-static-ip/ #/bin/bash ] || [ -z $ ] || [ -z $ ] || [ -z $ ] || [ -z $ ]; then echo "*****Input the necessary parameters: CONTAINERID IP MASK GATEWAY ETHNAME" echo "**…
一.weave介绍Weave是由weaveworks公司开发的解决Docker跨主机网络的解决方案,现在就采用它来实现Docker多宿主机互联的目的,它能够创建一个虚拟网络,用于连接部署在多台主机上的Docker容器,这样容器就像被接入了同一个网络交换机,那些使用网络的应用程序不必去配置端口映射和链接等信息. 外部设备能够访问Weave网络上的应用程序容器所提供的服务,同时已有的内部系统也能够暴露到应用程序容器上.Weave能够穿透防火墙并运行在部分连接的网络上,另外,Weave的通信支持加密,…
前言 在Docker网络--单host网络一文中,我为大家总结了Docker的单机网络相关知识和操作,单机网络比较容易.本文我为大家总结Docker跨主机通信相关知识.同样本文大部分内容以CloudMan的相关教程为基础. 一.Docker 跨主机通信 Docker跨主机网络方案包括: docker 原生的 overlay 和 macvlan. 第三方方案:常用的包括 flannel.weave 和 calico. docker 通过 libnetwork 以及 CNM 将上述各种方案与dock…
容器网络 在前面的博客中已经详细讲解了几种网络方案: none, host, bridge,user-defined.但是他们只是解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信.本篇博客将详细介绍如何实现该功能. 跨主机网络方案包括两大类: docker原生的:overlay和macvlan 第三方方案:flannel.weave和calico 本篇博客将详细讲解overlay以及weave两种方案. overlay Docerk overlay 网络需要一个 key-val…
docker多主机管理 前面我们的实验环境中只有一个 docker host,所有的容器都是运行在这一个 host 上的.但在真正的环境中会有多个 host,容器在这些 host 中启动.运行.停止和销毁,相关容器会通过网络相互通信,无论它们是否位于相同的 host. 对于这样一个 multi-host 环境,我们将如何高效地进行管理呢? 我们面临的第一个问题是:为所有的 host 安装和配置 docker. 对于多主机环境手工方式效率低且不容易保证一致性,针对这个问题,docker 给出的解决…
利用OpenVSwitch构建多主机Docker网络 [编者的话]当你在一台主机上成功运行Docker容器后,信心满满地打算将其扩展到多台主机时,却发现前面的尝试只相当于写了个Hello World的入门程序,多主机的网络设置成了下一道门槛.在你尝试各种方案时不妨先看看本文,或许就会豁然开朗,发现原来也不复杂.嗯,是的,本文用到了OpenVSwitch. 运行Docker已经不是什么新鲜事,网上有很多入门教程来帮助你在一台主机上运行容器.这台主机可以是Linux服务器,也可以是Mac(借助类似b…
前言:前面的部分一直都是单机跑docker,但实际生产环境不可能只用一台来跑.肯定会用到多台,因为他们都是内部私有ip,那么多台主机之间的容器如何通信?这个是个很头疼的问题!目前主流几种方法如下:1.使用路由机制打通网络2.使用Open vSwitch(OVS)打通网络3.使用flannel来打通网络4.使用Quagga来实现自动学习路由 第一种:使用路由机制打通网络使用Linux的路由来打通网络优点: 常规路由技术 使用传统网络技术 简单 高性能 缺点: 与现有网络融为一体 灵活性低 现在有两…