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/?