前言

公司现在 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 这几个工具安装不赘述。

新建

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=系统自启动

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,网关一定设置正确!!!

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

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

# Generated by NetworkManager
nameserver 202.106.0.20

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

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

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

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

没权限,加执行权限

完成!


↙↙↙阅读原文可查看相关链接,并与作者交流