共计 5460 个字符,预计需要花费 14 分钟才能阅读完成。
主要内容:
技术关键点:docker17.06.3 安装,docker 自制镜像及相关容器操作,docker 分配固定 IP 及添加端口映射,solrCloud 集群部署等
主要思路:在 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 |
一、在宿主机安装 docker 最新版
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
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/18d086780d8ab4bc055915f624b54465.png)
二、在宿主机制作 Ubuntu14.10 基础镜像 ubuntu-self
1. 将本机操作系统打包成 tar 文件
tar –numeric-owner –exclude=/proc –exclude=/sys -cvf ubuntu-self.tar /
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/91b7ebe01b4485dd6bd840208c647b71.png)
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
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/5586a9a14c8b1a90e7f9470fe276ab0f.png)
四、启动一个容器, 设置静态 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 是否为静态,执行结果如下图所示:
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/e67582fc1f9a68ca3a04731a2425962d.png)
五、继续操作,在容器 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
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/8d44dda8eec5d25c5f97e8e9c6c3957b.png)
5. 在宿主机切换到 tank 用户(root 登录 ssh 需要修改 ssh 配置文件,这里用 tank 用户登录更方便些),并 ssh 到容器 server1
su tank
ssh server1
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/e27023d65bb71e8b3c54579f4ff1cd00.png)
六、在容器 server1 中安装 jdk1.8 并配置 java 环境变量
1. 解压缩文件
tar -zxvf jdk1.8.0_141.tar.gz -C /usr/local/java/
2. 向 /etc/profile 文件中追加下面内容:
export JAVA_HOME=/usr/local/java/jdk1.8.0_141
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin
3. 让文件生效
source /etc/profile
4. 验证 java 成功安装
java -version
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/24b87fecc0023fdd9954063a01a219b3.png)
七、在容器 server1 中安装配置 zookeeper-3.4.10
1. 解压 zookeeper 安装包到 /usr/local 目录中
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local/
2. 创建 zookeeper 的 data 和 logs 目录,确保拥有读写权限
mkdir /home/tank/zookeeper/data
mkdir /home/tank/zookeeper/log
3. 将 zookeeper 安装目录下 conf 文件夹中的 zoo_sample.cfg 重命名为 zoo.cfg
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/9e07d0b99aab6e18dd180513cdb54082.png)
4. 修改 zoo.cfg 内容,zoo.cfg 配置完后如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/home/tank/zookeeper/data
dataLogDir=/home/tank/zookeeper/log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to “0” to disable auto purge feature
#autopurge.purgeInterval=1
server.1=172.18.0.11:2888:3888
server.2=172.18.0.12:2888:3888
server.3=172.18.0.13:2888:3888
5. 进入 /home/tank/zookeeper/data 中,新建 myid 文件,写入 1
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/1b0ddd51c925dcc283782fae4c67c7aa.png)
注:其他两个节点的 myid 内容应分别是 2 和 3
八、在容器 server1 中安装配置 solr-6.6.0
1. 解压 solr-6.6.0.tgz 到 /usr/local 目录下
tar -zxvf solr-6.6.0.tgz -C /usr/local/
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/69edfd3eb9094963480de6670bb90e55.png)
2. 创建 solrCloud 根目录 solr_cloud_home 文件夹
mkdir /usr/local/solrCloud/solr_cloud_home
3. 复制 /usr/local/solr-6.6.0/server/solr/ 目录下的文件到 solr_cloud_home 中
cp /usr/local/solr-6.6.0/server/solr/* /usr/local/solrCloud/solr_cloud_home/
查看 solr_cloud_home 目录,如图所示:
ls
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/cb568605dabf46e846960999f3e0e882.png)
4. 创建配置存放目录 solr_cloud_collection 文件夹
mkdir /usr/local/solrCloud/solr_cloud_collection
5. 复制 /usr/local/solr-6.6.0/example/example-DIH/solr/solr/ 目录下的文件到 solr_cloud_collection/cloud_core 中
mkdir /usr/local/solr_cloud_collection/cloud_core
cp /usr/local/solr-6.6.0/example/example-DIH/solr/solr/* /usr/local/solr_cloud_collection/cloud_core/
ls
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/b6b4e60ae358965a8105e61b9ffbf70a.png)
九、在宿主机提交容器 server1 为新的镜像,命名为 ubuntu-self-solr
sudo docker commit server1 ubuntu-self-solr
docker images
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/8e2f1a387d3bc0ff1b42d36c5fdf5c34.png)
十、利用上一步生成的镜像启动容器 server2,server3
1. 在宿主机启动容器 server2,设置 IP 为 172.18.0.12
docker run -itd –name server2 –net search_network –ip 172.18.0.12 ubuntu-self-solr /bin/bash
2. 将容器 server2 中 /home/tank/zookeeper/data/myid 内容由 1 改为 2
3. 退出容器 server2,回到宿主机
exit
3. 在宿主机启动容器 server3,设置 IP 为 172.18.0.13
docker run -itd –name server3 –net search_network –ip 172.18.0.13 ubuntu-self-solr /bin/bash
4. 将容器 server3 中 /home/tank/zookeeper/data/myid 内容由 1 改为 3
5. 退出容器 server3,回到宿主机
exit
6. 在宿主机中查看 docker 容器运行情况
docker ps
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/a0f61b93337617a0f2fd8d0718cf6a83.png)
十一、在宿主机 ssh 登录容器 server1,server2,server3 并分别启动 zookeeper
ssh server1
cd /usr/local/zookeeper-3.4.10/
bin/zkServer.sh start
/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/44a18d3cc8d1dfd47ef704ac2309e439.png)
注:在 server2,server3 上同样执行此操作
十二、在宿主机 ssh 登录容器 server1,server2,server3 并启动 solr
1.ssh 登录 server1,cloud 模式下启动 solr
ssh server1
cd /usr/local/solr-6.6.0
bin/solr start -cloud -p 8983 -s “/usr/local/solrCloud/solr_cloud_home/” -z “172.18.0.11:2181,172.18.0.12:2181,172.18.0.13:2181”
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/d392353247ccb493bec679f2974c4882.png)
2. 打开宿主机浏览器,访问页面 http://172.18.0.11:8983/solr/,可以进入 solr 页面即代表启动成功
注:在 server2,server3 上同样执行此操作
十三、在容器 server1 上创建 Collection(只需要在一台 solr 节点上操作)
1、由 solr 命令建立索引,这里索引命名为:cloudsuite_web_search
进入 solr/bin 目录,使用 solr 命令:
cd /usr/local/solr-6.6.0
bin/solr create_collection -c cloudsuite_web_search -shards 3 -replicationFactor 3 -d /usr/local/solrCloud/solr_cloud_collection/cloud_core/conf -p 8983
-c 核心名称 tar
-shards 分片数量
– replicationFactor 副本数量(一般指有几台 solr 集群)
2. 将 solr 提供的 xml 示例文件上传至索引
bin/post -c cloudsuite_web_search *.xml
十四、在宿主机上通过浏览器访问 solrCloud 集群,验证操作成功
安装成功后,无论从哪个节点访问 8983 端口,均可以看到 cloud 的拓扑模式,如下所示
![Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群 Ubuntu 14.04 下适应 Docker 搭建 solrCloud 集群](https://s.xgss.net/sky/2022-01-21/fa57de8849a03e7272905d406b848d33.png)
更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-09/146842.htm
正文完
星哥说事-微信公众号
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)