docker使用pipework給容器分配路由器下的局域網ip


需求

需要讓docker容器使用路由器提供的內網ip,使用內網ip直接訪問容器。

環境准備

centos7系統、docker。

1.宿主機安裝pipework

wget -O pipework-master.zip https://codeload.github.com/jpetazzo/pipework/zip/master
unzip pipework-master.zip
cp -p pipework-master/pipework /usr/local/bin/

2.修改宿主機網絡為橋接

vim /etc/sysconfig/network-scripts/ifcfg-br0			
	TYPE=Bridge		
	DEVICE=br0		
	BOOTPROTO=static		
	ONBOOT=yes		
	IPADDR=192.168.2.80		
	NETMASK=255.255.255.0		
	GATEWAY=192.168.2.1		
			
vim /etc/sysconfig/network-scripts/ifcfg-em3			
	DEVICE=em3		
	ONBOOT=yes		
	BRIDGE=br0		
然后重啟網絡確認修改后宿主機網絡正常		

3.docker創建容器

docker run -itd --net=none --name=test-nginx1 nginx			
	    #--net=none不設置網絡		

4.使用pipework設置docker網絡

方式一:使用固定ip

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

方式二:使用dhcp

pipework br0 test1 dhcp
!若主機環境中存在dhcp服務器,才可以通過dhcp的方式獲取IP			

5.測試

進入容器、執行ip addr可看到容器已得到由路由器分配的ip
  docker exec -it xx /bin/bash				
  ifconfig
此時容器可正常與內網和公網聯通			

注意

重啟容器后 ip會丟失,需要重新設置。
可使用腳本檢查容器狀態,並自動執行設置。			


免責聲明!

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



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