Docker Docker 踩坑记 (一):CentOs7 配置不失效网桥,pipework 分配 IP 给 Docker 容器

白纸 · 2017年10月21日 · 最后由 peterweb 回复于 2018年07月25日 · 2607 次阅读

前言

公司现在 40+ 项目,现在运行环境是 VM 虚拟系统,管理及维护开始不太方便,趁着这次机会,好好整理下 Docker 相关知识,第一天开始就不断的踩坑,大大小小的坑太让我这萌新抓梦珏了。
各种工具层出不穷,也许现在不是最好的方案,许多工具能解决我半天的工作,还是希望锻炼自己解决问题的能力,所以一步一步来,先自己苦逼的搭建,成长过程中,结合工具提升效率。
希望以这种方式记录下自己的知识梳理,也给自己坚持的动力!

今天踩的坑

  1. 配置不重启失效的网桥
  2. 使用 pipework 给容器分配 IP

配置不失效网桥-CentOs7 为例子

虚拟机 CentOs
IP:192.168.155.70
网关:192.168.155.254
DNS:202.106.0.20

ip、ifconfig、bridge-utils 这几个工具安装不赘述。

  • 新建一个网桥 系统的所以网卡都在 /etc/sysconfig/network-scripts 下 所以先新建文件,命名格式 ifcfg-xxx

新建

touch /etc/sysconfig/network-scripts/ifcfg-br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.155.71
GATEWAY="192.168.155.254"
DNS1="202.106.0.20"
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
DEVICE=br0
ONBOOT=yes

TYPE:类型 bridge=网桥 Ethernet=网卡
BOOTPROTO:static 静态地址
DEVICE:名称
ONBOOT:yes=系统自启动

  • 添加网卡到网桥 网卡在/etc/sysconfig/network-scripts 下,ifcfg-nes1 ,ifcfg-nes2 ....递增显示 修改网卡配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="a9d32c74-aabb-4c4e-bd7c-c88837d8447a"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.155.70"
PREFIX="24"
GATEWAY="192.168.155.254"
DNS1="202.106.0.20"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"
BRIDGE=br0

在后面加上

BRIDGE=br0

设置网卡所连接到的网桥名称

坑 1:这里的 DNS,网关一定设置正确!!!

  • 设置 DNS

坑 2: 因为这里没设置 DNS,导致容器无法解析域名,只能解析 IP

DNS 设置在/etc/resolv.conf 设置

# Generated by NetworkManager
nameserver 202.106.0.20

至此:设置完成,重启网卡服务service network restart即可,ip 变成网桥设置的 71

使用 pipework 给容器分配网桥的 ip

  • 启动 docker 容器使用 none 模式

docker run -itd --net=none --name=cnetos1 centos /bin/bash

  • 安装 pipework
git clone https://github.com/jpetazzo/pipework
cp ./pipework/pipework /usr/local/bin/

没权限,加执行权限

  • 设置网桥 br0 的 ip 给容器 pipework br0 cnetos1 192.168.155.72/24@192.168.155.254

完成!

共收到 1 条回复 时间 点赞

LZ 你好,感谢你提供经验分享,我按照你的步骤执行一路顺利,容器也能分配到 pipework 指派的 ip,但是只能 docker 宿主机和容器间能互通,对外都不通,搞了很久也没解决,希望 LZ 能帮忙分析问题,感谢感谢!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册