专栏首页智慧协同centos7宿主机上建立Docker桥接物理网络过程

centos7宿主机上建立Docker桥接物理网络过程

环境说明

宿主机网卡信息:
name: eth0
IP: 10.211.55.11
GATEWAY: 10.211.55.1
DNS:192: 10.211.55.1

新建桥接网卡

  1. 停止docker服务
# service docker stop
  1. 删除docker0网卡
# ip link set dev docker0 down
# brctl delbr docker0
  1. 新建桥接物理网络虚拟网卡br0
# brctl addbr br0
# ip link set dev br0 up
# ip addr add 10.211.55.100/24 dev br0 #为br0分配物理网络中的ip地址
  1. 启用新的网卡br0
# ip link set dev br0 up

查看网卡信息

# ip addr show br0
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 00:1c:42:b8:09:57 brd ff:ff:ff:ff:ff:ff
    inet 10.211.55.100/24 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fdb2:2c26:f4e4:0:21c:42ff:feb8:957/64 scope global mngtmpaddr dynamic
       valid_lft 2591495sec preferred_lft 604295sec
    inet6 fe80::d0fb:20ff:feb3:1c4/64 scope link
       valid_lft forever preferred_lft forever
  1. 设置docker服务启动参数
# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --selinux-enabled -b=br0 --registry-mirror=https://v2kdqv13.mirror.aliyuncs.com
  1. 启动docker服务
# systemctl daemon-reload
# service docker restart
# service docker start

不同主机间容器通信

不同容器之间的通信可以借助于 pipework 这个工具:

$ git clone https://github.com/jpetazzo/pipework.git
$ sudo cp -rp pipework/pipework /usr/local/bin/
  1. 安装相应依赖软件
$ sudo yum install iputils-arping bridge-utils -y
  1. 新建容器,如gitlab
$ sudo docker run --detach \
    --hostname gitlab-centos-linux \
    --name gitlab \
    --restart always \
    --volume /data/gitlab/config:/etc/gitlab:Z \
    --volume /data/gitlab/logs:/var/log/gitlab:Z \
    --volume /data/gitlab/data:/var/opt/gitlab:Z \
    gitlab/gitlab-ce:latest

注意此时新建的容器虽然运行起来了,但是是没有网络连接的,我们需要借助pipework工具为容器手动设置ip。

  1. 为容器设置ip
$ sudo pipework br0 gitlab 10.211.55.102/24@10.211.55.100

说明:

  • 10.211.55.102/24: 为gitlab容器指定的静态ip
  • 10.211.55.100: 网关地址,也就是宿主机br0网卡的地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 解决ubuntu14.04更新语言后字体变成楷体到问题

    飞奔去旅行
  • Junit报错could not initialize proxy - no Session的解决办法

    原因是OpenSessionView只针对web请求起作用,在Junit中无法使用,为了解决这个问题,我们可以在Test类上加入@Transactional注解...

    飞奔去旅行
  • CentOS 7开放端口和关闭防火墙

    飞奔去旅行
  • 高度伪造的爬虫&&X-Forwarded-For伪造ip跳过ip限制

    针对需要大量代理ip的R××项目,采用伪造式的请求头跳过验证码和每日请求次数限制,现在针对请求做详细的拟人化,让对面更难以察觉。如有不足多多指教。项目最新完整代...

    十四君
  • 在centos7搭建gitlab

    虽然可托管代码的平台有很多选择,国外的有 github,国内的有 gitee 之类,但很多公司都会选择自建 gitlab 服务,觉得将代码托管在第三方,内心并不...

    章鱼喵
  • 工具篇 - JMeter之旅01

    前言 在你的日常工作中, 你有没有测试过一个服务能支撑多少用户在线,用户并发? 有没有那么一天,突然跟你说,晚上系统上线你做下性能测试。 ? 什么是JMeter...

    苦叶子
  • DeepMind游戏AI登上Science:雷神之锤多智能体合作,超越人类玩家

    没有什么游戏的操作原理比夺旗更简单的了(除了抓人或踢罐子游戏)。两队各自在己方的基地中设有标记物,然后争夺对方的标记物并将其安全送回基地。这太简单了!

    机器之心
  • Marketing Cloud的contact主数据的odata调用方式

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • 初识JMeter

    今天在地铁上,一直在琢磨高可用测试的一些补充场景,除了功能之外,就是一些异常场景的考虑,总之,能想到可能发生的任何场景,然后和实际应用场景结合起来,给出...

    jeanron100
  • DevOps 中高效测试基础架构的最佳实践

    今天我主要讲四个内容,我做内容规划的时候其实内容偏多,对于一些通用的内容可以讲得快一点,干货部分会讲得仔细一点。

    DevOps时代

扫码关注云+社区

领取腾讯云代金券