环境说明:

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. Andorid之Annotation框架初使用(三)

    线程使用: @Background这个是使用了cached thread pool executor , 阻止开启过多的线程 可以为@Background指定一个id,用于随时终止线程的操作(Back ...

  2. Windows Server 2012 R2搭建IIS服务器

    1-单击宫格菜单的第一个“服务器管理器”: 2 2-在“快速启动(Q)”子菜单下,单击“2 添加角色和功能”: 3 3-点击左边“安装类型”,然后单击“基于角色或基于功能的安装”,再单击“下一步(N) ...

  3. 使用ssh向sqlserver2005数据库中保存image类型的二进制图片

    1.首先设计数据库表,其中photo.photo2字段均为image类型的. 2.建立实体bean对象,设置两个字段为byte[]如:private byte[] photo; private byt ...

  4. go语言基础之函数类型

    1.函数类型 示例: package main import "fmt" func Add(a, b int) int { return a + b } func main() { ...

  5. vnstat 查看服务器带宽统计命令

    vnStat是一个Linux下的网络流量监控软件,它记录指定网卡每日的传输流量日志. 它并非基于网络包的过滤,而是分析文件系统- /proc, 所以vnStat无需root的权限就可使用. ,它还自带 ...

  6. 公司上线流程 pushonline_alpha

     这是在公司将服务部署上线的一个记录,只是部署很小的python脚本,各公司不同,参考性不是很大 开始吧(版本管理是git) 1.整理好代码后:git add xxx.py git commit -m ...

  7. easyui messager alert 三秒后自动关闭提示

    $.messager.alert(' ','<font size=\"2\" color=\"#666666\"><strong>数据库 ...

  8. C++ 中特殊的用法

    1.反斜杠 a.转义字符 b.强制换行,当一行代码很长时,在这一行中间加上反斜杠,分成两行,反斜杠前后不能有空格.在预编译的的时候,会合成一行. 2.String^ 表明String是一个托管类型的指 ...

  9. 使用javascript开发的视差滚动效果的云彩 极客标签 - 做最棒的极客知识分享平台

    www.gbtags.com 使用javascript开发的视差滚动效果的云彩 阅读全文:使用javascript开发的视差滚动效果的云彩 极客标签 - 做最棒的极客知识分享平台

  10. 《Go并发编程实战》第2版 紧跟Go的1.8版本号

    文章作者:郝林(<Go并发编程实战 (第2版)>作者) 最终来了! 经过出版社的各位编辑.校对.排版伙伴与我的N轮PK和共同努力,<Go并发编程实战>第2版的全部内容最终全然确 ...