docker 創建容器時指定容器ip的實現示例
Docker創建容器時默認采用bridge網絡,自行分配ip,不允許自己指定。
在實際部署中,我們需要指定容器ip,不允許其自行分配ip,尤其是搭建集群時,固定ip是必須的。
我們可以創建自己的bridge網絡 : mynet,創建容器的時候指定網絡為mynet並指定ip即可。
查看網絡模式
docker network ls
創建一個新的bridge網絡
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet
查看網絡信息
docker network inspect mynet
創建容器並指定容器ip
docker run -e TZ="Asia/Shanghai" --privileged -itd -h hadoop01.com --name hadoop01 --network=mynet --ip 172.18.12.1 centos /usr/sbin/init
運行容器
docker exec -it hadoop01 /bin/bash
centos最小化安裝沒有ifconfig命令,可通過yum進行安裝
yum install -y net-tools
安裝ssh服務
yum install -y openssh-server yum install -y openssh-clients systemctl start sshd.service
新增非root用戶
useradd brock passwd brock
通過本地客戶端訪問(通過創建容器時指定端口或配置獨立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
或
route -p add 172.18.12.0 MASK 255.255.255.0 10.0.75.2