docker容器配置獨立ip


  一般安裝docker后都會通過端口轉發的方式使用網絡,比如 “-p 2294:22” 就將2294抓發到22端口來提供sftp服務,這樣使用起來沒有問題。但端口號很難記憶,如果前邊有nginx等抓發工具,可以將2294再轉回22,但有沒有方法直接給docker容器配置獨立ip地址呢?

一、以下兩種方式都需要安裝 pipework

  其作用是指定物理網段容器IP地址

cd /usr/src
# 若沒有wget命令,安裝 yum install -y wget
wget -O pipework-master.zip https://codeload.github.com/jpetazzo/pipework/zip/master
# 若沒有unzip命令,安裝 yum install -y unzip zip
unzip pipework-master.zip 
cp -p pipework-master/pipework /usr/local/bin/

 

  以下兩個種方式重啟后ip地址都會丟失,所以每次重啟后都要重新分配ip地址

二、通過虛擬網卡br0橋接

 1、修改宿主機物理網卡配置

vi /etc/sysconfig/network-scripts/ifcfg-em1

  修改兩個配置

BOOTPROTO=none # 配置不啟動dhcp
BRIDGE=br0 # 配置網橋

  

2、增加網橋設備 br0

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

  在其中增加如下內容

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=dhcp

  配置完成后重新啟動網絡,此時 br0 設備就使用的物理網卡 em1 作為橋接通信。

 3、創建容器(創建了一個centos7的容器)

docker run -itd --net=none --name=test01 ansible/centos7-ansible /bin/bash # 其中 --net=none不設置網絡

4、給創建的容器制定物理IP地址

pipework br0 test01 192.168.2.235/24@192.168.2.1
#       網橋 容器名     IP地址         網關地址

5、進入容器查看ip地址

docker exec -it test01  /bin/bash # 進入test01容器
yum install -y net-tools # 安裝ifconfig
ifconfig

  此時就應該看到配置的  192.168.2.235 這個ip。

  此種方法的問題是,之后每個容器都需要指定一個ip地址。

三、通過物理網卡橋接

 

3.1 綁定物理ip 

1、創建容器(創建了一個centos7的容器)

docker run -itd --net=none --name=test02 ansible/centos7-ansible /bin/bash # 其中 --net=none不設置網絡

2、給創建的容器制定物理IP地址,其中eth0跟據實際情況修改

pipework eth0 test02 192.168.2.234/24@192.168.2.1
#       網橋 容器名     IP地址         網關地址

3、進入容器查看ip地址

docker exec -it test02  /bin/bash # 進入test01容器
yum install -y net-tools # 安裝ifconfig
ifconfig

  此時就應該看到配置的  192.168.2.234 這個ip。

  此種方法的問題是,之后每個容器都需要指定一個ip地址。

3.2 使用內網地址172.x.x.x

1、創建容器(創建了一個centos7的容器)

docker run -itd --name=test03 ansible/centos7-ansible /bin/bash

2、進入容器查看ip地址

docker exec -it test03  /bin/bash # 進入test01容器
yum install -y net-tools # 安裝ifconfig
ifconfig

四、重啟后固定ip

  以上防范重啟后需要使用shell腳本的方式重新分配ip地址,也可使用 docker-static-ip 固定ip

實現與pipework一樣,只是用Python把整個指定的IP的操作變成后台進程,把 [容器,網橋,IP地址,網關]寫進containers.cfg 。
程序會根據配置文件來自動設置容器的IP地址,每10秒檢查一次,如果有新增的就會自動設置。
當重啟容器時,IP地址消失,程序會根據配置文件再次自動分配。

  使用說明代碼下載地址參見 https://github.com/lioncui/docker-static-ip

 

 

  

 

參考文檔:

  http://blog.51cto.com/12832314/1929936?utm_source=oschina-app

  https://blog.csdn.net/xitongfengxi/article/details/52249988

  https://blog.csdn.net/fgf00/article/details/52575500

  http://www.jb51.net/article/118396.htm

  https://www.cnblogs.com/xuezhigu/p/8257129.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM