主要思路:在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器中配置solrCloud集群。
注:solrCloud采用的solr内置jetty,需要单独配置zookeeper
容器IP及名称见下表:
编号 静态IP 容器名称 1 172.18.0.11 server1 2 172.18.0.12 server2 3 172.18.0.13 server3
1.更新apt-get
apt-get update
2.安装curl工具
apt-get install curl
3.获取并安装docker最新版
curl -fsSL https://get.docker.com/ | sh
4.查看docker版本
docker -v
二、在宿主机制作Ubuntu14.10基础镜像ubuntu-self
1.将本机操作系统打包成tar文件
tar --numeric-owner --exclude=/proc --exclude=/sys -cvf ubuntu-self.tar /
2.将制作的tar文件导入docker镜像库中,并命令为:ubuntu-self:
cat ubuntu-self.tar | docker import - ubuntu-self
3.现在可以运行它了:
docker run -i -t ubuntu-self
注:官方提供的镜像库中Ubuntu无法sudo,不太好用,这里我自己利用本机的操作系统生成了一个基础纯净版镜像,命名为ubuntu-self,大小约3.5G,里面没有安装任何软件。
三、配置宿主机的hosts文件,以便利用ssh登录容器1.修改hosts文件,添加如下内容:
vi /etc/hosts
172.18.0.11 server1
172.18.0.12 server2
172.18.0.13 server3
2.查看hosts文件
cat /etc/hosts
四、启动一个容器,设置静态IP,命名为server1
1.在宿主机上创建自定义网络
docker network create --subnet=172.18.0.0/16 search_network
备注:这里选取了172.18.0.0网段,也可以指定其他任意空闲的网段,search_network为自定义网桥的名字,可自己任意取名。
2.利用docker启动容器server1,分配固定IP 172.18.0.11,并将容器的8983端口与宿主机8983进行映射,以便可以从外部访问容器
docker run -itd --name server1 --net search_network --ip 172.18.0.11 -p 8983:8983 ubuntu-self /bin/bash
注:该命令执行完之后直接进入到server1的命令行界面,主机名称变为docker分配的随机字符串,查看ip是否为静态,执行结果如下图所示:
五、继续操作,在容器server1中配置ssh服务
1.aptget升级
apt-get update
2.安装openssh服务
apt-get install openssh-server
3.开启ssh服务
sudo /etc/init.d/ssh start
4.设置ssh开机启动
vi /etc/rc.local
添加如下内容:
service ssh start
4.退出容器,在宿主机中采用ssh登录
exit
5.在宿主机切换到tank用户(root登录ssh需要修改ssh配置文件,这里用tank用户登录更方便些),并ssh到容器server1
su tank
ssh server1