环境说明:

1.系统:centos7

2.docker:Docker version 1.3.2

3.docker启动参数:OPTIONS=--selinux-enabled=false -H fd:// -b=br0 -g /workspace/docker

配置过程:

====================bond========================

bond需要工作在主备模式下,在均衡模式下不行。(网卡7种bond模式原理

1.bond做网桥前配置:

cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
IPADDR=x.x.x.x
NETMASK=x1.x1.x1.x1
NM_CONTROLLED=no
ONBOOT=yes
USERCTL=no

2.bond设置网桥:

cat /etc/sysconfig/network-scripts/ifcfg-bond0
BOOTPROTO=none
BRIDGE=br0
DEVICE=bond0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Bond
USERCTL=no

设置网桥br0

cat /etc/sysconfig/network-scripts/ifcfg-br0

BOOTPROTO=static
DEVICE=br0
IPADDR=x.x.x.x (与设置网桥前ifcfg-bond0中相同)
NETMASK=x1.x1.x1.x1 (与设置网桥前ifcfg-bond0中相同)
GATEWAY=x2.x2.x2.x2(根据情况设置)
NM_CONTROLLED=no
ONBOOT=yes
SLAVE=bond0
USERCTL=no
TYPE=Bridge

3.其他设备配置 cat /etc/sysconfig/network-scripts/ifcfg-em3

DEVICE=em3
BOOTPROTO=none
ONBOOT=yes
MASTER=bond1
SLAVE=yes
USERCTL=no
NM_CONTROLLED=no

4.cat /etc/modprobe.d/bond.conf

alias bond0 bonding
alias bond1 bonding
options bond0 mode=1 miimon=50
options bond1 mode=1 miimon=50

=======================eth===========================

1.做网桥前eth0配置:

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
IPADDR=x.x.x.x
NETMASK=x1.x1.x1.x1
GATEWAY=x2.x2.x2.x2
NAME=eth0
ONBOOT=yes

2.eth设置网桥:

cat /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=none
BRIDGE=br0
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
#TYPE=Ethernet
USERCTL=no

设置网桥br0:

cat /etc/sysconfig/network-scripts/ifcfg-br0
BOOTPROTO=static
DEVICE=br0
IPADDR=x.x.x.x  (与设置网桥前ifcfg-eth0中相同)
NETMASK=x1.x1.x1.x1  (与设置网桥前ifcfg-eth0中相同)
GATEWAY=x2.x2.x2.x2  (与设置网桥前ifcfg-eth0中相同)
NM_CONTROLLED=no
ONBOOT=yes
USERCTL=no
TYPE=Bridge

==========================================

启动容器:

docker run --rm -t -i --net=none --name=test centos:latest /bin/bash

为容器指定ip,路由及mac地址(下载pipework,通过pipework实现)

pipework br0 $cid $ip/16@$gateway_ip $mac

===================================================

搭建私有仓库:

安装依赖:

sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel

sudo python-pip install docker-registry

或者源码安装(有外网):

git clone https://github.com/docker/docker-registry.git
cd docker-registryxxx

cp config/config_sample.yml config/config.yml #根据需求修改配置

(修改默认db位置:

sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite:////home/maintain/registry/docker-registry.db

在dev段增加本地存储路径:

storage: local
storage_path: $yourpath

)

python setup.py install

无外网需要安装setuptools,sqlalchemy,requests,rsa,gunicorn,PyYAML,gevent,Flask,blinker,backports.lzma,greenlet,docker-registry-core,itsdangerous,Jinja2,Werkzeug,simplejson,boto(https://pypi.python.org/simple/这里都有)

启动(第一次可能失败,需要启动2次):

gunicorn -c contrib/gunicorn*.py docker_registry.wsgi:application

启动时若有如下报错:

'Heads-up! File is missing: %s' % config_path)
FileNotFoundError: Heads-up! File is missing: /usr/lib/python2.7/site-packages/docker_registry-0.9.0-py2.7.egg/docker_registry/lib/../../config/config.yml

将config.yml拷贝一份到/usr/lib/python2.7/site-packages/docker_registry-0.9.0-py2.7.egg/docker_registry/lib/../../config/config.yml即可

===============================

docker使用自建网桥和私有仓库启动参数:

OPTIONS=--selinux-enabled=false -H fd:// -b=br0 --insecure-registry=registryaddr:5000

========================================

异常:

1.docker重启失败可以尝试删除默认docker0网桥(ifconfig docker0 down;brctl delbr docker0),然后重启

2.如果删除了docker的某些文件(/val/lib/docker下的所有能删的文件),但是devicemapper没删掉,导致docker无法启动,如下报错

Can't set task name /dev/mapper/docker-xxxx-pool

Error running createDevice dm_task_run failed

此时想删除devicemapper,如果报rm: cannot remove ‘devicemapper’: Device or resource busy,则需要umount devicemapper,然后删除devicemapper

再删除默认docker0网桥(ifconfig docker0 down;brctl delbr docker0),然后重启

docker中文入门书

docker 不同机器上容器互相通信的更多相关文章

  1. Docker:跨主机容器间通信之overlay [十五]

    一.配置overlay类型网络准备工作 1.在luoahong3主机上 docker run -d -p 8500:8500 -h consul --name consul progrium/cons ...

  2. Docker网络和容器的通信

    Docker的本地网络实现其实就是利用了Linux上的网络命名空间和虚拟网络设备(特别是veth pair). 基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界 ...

  3. Docker 容器的通信(十二)

    目录 一.容器间通信 1.IP 通信 2.Docker DNS Server 3.joined 容器 二.容器访问外部网络 三.外部网络访问容器 1.随机端口 2.指定端口 3.不指定任何端口. 4. ...

  4. 如何使不同主机上的docker容器互相通信

    docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...

  5. 容器间通信的三种方式 - 每天5分钟玩转 Docker 容器技术(35)

    容器之间可通过 IP,Docker DNS Server 或 joined 容器三种方式通信. IP 通信 从上一节的例子可以得出这样一个结论:两个容器要能通信,必须要有属于同一个网络的网卡. 满足这 ...

  6. Docker:macvlan实现容器跨主机通信 [十四]

    一.什么是macvlan 1.macvlan 本身是 linux kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址, 2.即多个 interface,每个 interface ...

  7. 不同主机的docker容器互相通信

    Docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.0.1/16,一个16位的子网掩码给容器提供了 65534个IP地址. docker0只是一个在绑定到 ...

  8. 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装

    一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到  ...

  9. AspNetCore容器化(Docker)部署(二) —— 多容器通信

    一.前言 着上一篇 AspNetCore容器化(Docker)部署(一) —— 入门,在单个容器helloworld的基础上引入nginx反向代理服务器组成多容器应用. 二.配置反向代理转接 配置转接 ...

随机推荐

  1. 第十一章 PhpMyAdmin连接远程mysql服务器---连接openwrt 703N服务器

    //千万不要在你原来的那个phpmyadmin文件夹上操作~~~要复制一个新的进行操作,这样我们就可以同时使用本地和远程   一.下载phpmyadmin到本地 我使用的是windows下的集成WAM ...

  2. [Linux] Ubuntu下解压rar文件的方法

    一般通过默认安装的ubuntu是不能解压rar文件的,只有在安装了rar解压工具之后,才可以解压.其实在ubuntu下安装rar解压工具是非常简单的,只需要两个步骤就可以迅速搞定. ubuntu 下r ...

  3. Spring3之InternalResourceViewResolver

    打开Spring的源代码,我们可以在org.springframework.web.servlet.view包下看到很多的 View和ViewResolver类;View类为我们提供一些缺省的待扩展的 ...

  4. SPSS19.0实战之多元线性回归

    线性回归数据来自于国泰安数据服务中心的经济研究数据库.网址:http://www.gtarsc.com/p/sq/.数据名称为:全国各地区能源消耗量与产量,该数据的年度标识为2006年,地区包括我国3 ...

  5. Sql Server参数化查询之where in和like实现之xml和DataTable传参 (转)

    在上一篇Sql Server参数化查询之where in和like实现详解中介绍了在Sql Server使用参数化查询where in的几种实现方案,遗漏了xml和表值参数,这里做一个补充 文章导读 ...

  6. VS2012利用Wix打包问题

    在用VS2012打包的时候,忽然发现没有像VS2010一样可以本地打包的项目模板,于是找了N多资料后,发现现在微软在推荐用WIX打包. 在折腾WIX打包生成界面的时候,遇到了一个很纠结的问题. Unr ...

  7. java开发struts2项目遇到FilterDispatcher过时

    由于工作需要,再次需要写一些简单的Java代码了,曾经的Java编程历历在目,但是却再也找不到以前的感觉了.于是便怀着对儿时Java的记忆,再次踏上Java Web Project. 在此特别鸣谢:h ...

  8. Cognos TM1_10.1.1服务端安装

    出于对bi行业的强大热爱,出于对cognos tm1的强大兴趣,于是就想研究一下Cognos TM1(table manager one),今天就分享一下自己微不足道研究成果,真可谓是tm1的九牛一毛 ...

  9. Python3.2官方文档翻译--迭代器

    6.9 迭代器 到眼下为止.你可能已注意到很多容器对象都能够用for语句进行循环: 这样的訪问风格清楚简洁方便. 迭代器的应用是python遍历统一.在这样的场景背后.for语句调用容器对象iter( ...

  10. EF增删改查的优化

    在EF的上一篇博客中已经对它的增删改查有了一个简单的了解.当中的改动过程是先要把要改动的内容查出来然后再进行改动.保存.它详细的过程是这种 首先当在运行查询语句的时候"EF数据上下文&quo ...