环境说明:

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. Valgrind 内存泄漏工具

    Valgrind 是一款 Linux下(支持 x86.x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和 ...

  2. iOS:CoreData数据库的使用三(数据库和tableView表格一起使用)

    CoreData数据库是用来持久性存储数据的,那么,我们再从该数据库中取出数据干什么呢?明显的是为了对数据做操作,这个过程中可以将它们直观的显示出来,即通过表格的形式显示出来.CoreData配合ta ...

  3. 阿里云 Ubuntu 14.04 安装mysql 5.6

    1. 升级apt-get apt-get update 如果出现 : 说明没有你不是root用户,则需要用sudo命令 sudo apt-get update 下面出现权限问题都可以参照这个方法. 2 ...

  4. Python函数的循环调用

    def foo (): print 'runing foo' bar () def bar (): print 'runing bar' foo () bar() 直接上脚本,上面的脚本如果换成C语言 ...

  5. Codeforces Round #208 E. Dima and Kicks

                                                                           E. Dima and Kicks             ...

  6. kCGImagePropertyExifDictionary 引用错误

    kCGImagePropertyExifDictionary 引用错误 使用 AVFoundation拍照 //获取图片 [outputImage captureStillImageAsynchron ...

  7. 利用JqGrid结合ashx及EF分页显示列表之二

    上一篇文章简单利用JqGrid及ashx进行一个数据列表的显示,要文的重点是利用EF的分页与JqGrid进行结合,EF本文只是简单运用所以没有很规范,重点还是JqGrid分页的实现;本实例把JqGri ...

  8. CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别

    1.代码 (1)示例代码1 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...

  9. CSDN日报20170401 ——《假设你还是“程序猿”,我劝你别创业!》

    [程序人生]假设你还是"程序猿".我劝你别创业! 作者:北漂周 在IT这一行做得久了,会接触到无数让人哭笑不得的外行话. 「我们就差一个写代码的了」是当中典型的一种,之所以黑它.不 ...

  10. 用Html写一个简单的登陆界面

    <!DOCTYPE html> <html> <title>登陆页面</title> <head> <meta charset=&qu ...