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