docker創建容器時指定容器ip,實現遠程訪問容器


docker創建容器時默認采用bridge網絡,自行分配ip,不允許自己指定;

在實際部署中,我們需要指定容器ip,不允許其自行分配ip,尤其是搭建集群時,固定ip是必須的。

查看網絡模式,docker network ls

 

 我們可以創建自己的bridge網絡:yinong;創建容器的時候指定網絡為yinong並指定ip即可;

創建一個新的bridge網絡;

docker network create --driver bridge --subnet=171.17.12.0/16 --gateway=171.17.1.1 yinong

 

 查看yinong網絡信息

docker network inspect yinong

需要使用特權模式運行容器,不然容器中啟動服務報錯(如下圖);可參考:https://blog.csdn.net/zhenliang8/article/details/78330658

 

 鏡像相當於可讀的文本,容器是可以讀寫的文本;假如你在某鏡像centos7運行的容器下,安裝ifconfig,再次使用該鏡像運行容器(如,容器id為b),則容器b下無ifconfig;

 創建容器並指定容器ip;運行容器;

docker run -e TZ="Asia/Shanghai" -p 6001:22 --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init (linux本地端口6001:容器22端口,若是希望通過遠程訪問centos生成的容器,使用這種命令;假如是阿里雲服務器,記得將6001端口開啟)

下圖中,不可以使用xshell遠程訪問centos7生成的容器;

 

 centos7下未安裝ifconfig命令,可通過yum進行安裝;yum install -y net-tools

安裝ssh服務

yum install -y openssh-server

yum install -y openssh-clients

systemctl start sshd.service

 linux遠程登錄;linux系統中是通過ssh服務實現的遠程登錄功能,默認ssh服務端口為22;

SSH為Secure Shell的縮寫;

passwd root;根據提示設置容器中root的密碼;

登錄遠程服務器ssh root@171.17.12.3 (root是用戶名,171.17.12.3是服務器ip);

下圖為linux本機,登錄centos7的容器;

 

 下圖為centos7的容器內登錄本身;

 

 可以通過本地客戶端訪問centos7的容器

1)使用xshell訪問;

 

 2)添加route路由,通過cmd訪問;route add 需要訪問的網關 MASK 子網掩碼 本機ip;

可參考:https://blog.csdn.net/sjhfkhsf/article/details/83822839

 

 下面是cmd中,ping 171.17.12.3,已添加路由的提示0%丟失;未添加路由的提示100%丟失;[命令/?]查看幫助,如,route/?

 


免責聲明!

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



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