pipework將docker容器ip設爲宿主機網段

##1. 服務器信息linux

網絡: 192.168.1.1/24 網關: 192.168.1.1git

docker1 centos7 192.168.1.200github

docker2 centos7 192.168.1.201docker

##2.docker的安裝centos

關閉selinuxbash

# setenforce 0服務器

# vi /etc/selinux/config網絡

修改成SELINUX=disabled測試

使用yum安裝dockercentos7

# yum install docker-io -y

啓動docker

# service docker start

檢查docker

# docker info

......

下載鏡像

# docker pull centos

##3.建立網橋

# vi /etc/sysconfig/network-scripts/ifcfg-br0

TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.200    #配置爲機器的ip
PREFIX=16
GATEWAY=192.168.1.1
DNS1=114.114.114.114   #DNS服務器地址

修改物理網卡配置

# vi /etc/sysconfig/network-scripts/ifcfg-enxxxx

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=d0d3289e-9c2c-45f7-a569-c55aca9f0e8a
DEVICE=ens37
ONBOOT=yes
BRIDGE=br0     #add

重啓網絡

# service network restart

設置docker啓動參數,使用dr0網橋,設置單獨的fixed-cidr

# vi /etc/sysconfig/docker

在OPTIONS='--selinux-enabled'這行中修改成OPTIONS='--selinux-enabled -b=br0 --fixed-cidr=10.2.1.0/24' 即讓docker服務啓動時使用br0網卡進行橋接

重啓docker

# service docker restart

##4.安裝pipework

# wget https://github.com/jpetazzo/pipework/archive/master.zip

# unzip master.zip

# cp pipework-master/pipework /usr/local/bin/

# chmod +x /usr/local/bin/pipework

啓動一個docker

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

查看docker啓動的container

# docker ps

查看network namespace

# docker inspect -f "{{.State.Pid}}" 232621e9e9fb

19778

pipework將192.168.1.202ip綁定到test並將網關指到192,168.1.1

# pipework br0 test 192.168.1.202/24@192.168.1.1

docker2上測試可否ping通docker1

# ping 192.168.1.202

##5.同上安裝docker2

進去啓動的docker容器內 # docker exec -it b780a /bin/bash

\# ping 192.168.1.202
.....

#注意:

  1. virtualbox作實驗的話注意把網卡的混雜模式設成所有容許而後重啓,一開始沒設,結果死活都不通,搞了很久。
相關文章
相關標籤/搜索