Docker现在越来越火,所有的应用程序都想Docker一下,但是并没有听说在Docker上运行Solr。在没有Docker之前要想使用Solr需要在宿主机安装JDK,安装Tomcat,下载Solr程序。随着Docker的出现,为Solr创建、维护和部署过程的工作可能大大简化。这篇文章不是Solr的教程和Docker的教程,如果你需要,请移步SolrDocker的官方文档学习。

我们必须清楚以下几点:
1、将Solr的配置文件放在本地文件夹。
2、将所有的Core放在本地文件夹。
3、将扩展词放在本地文件夹。

首先拉取solr官方镜像,这里选择6.6版本

docker pull solr:6.6

拉取完成后先别急着去运行一个容器,先在宿主机上创建一个文件夹,这个文件夹就是用来存放所有的core和每个core的配置,等会儿将这个文件夹挂载到容器内部。

mkdir -p /usr/local/DockerSolrShared/server/solr

修改文件的权限

chown 8983:8983 /usr/local/DockerSolrShared/server/solr

将core的所有基础配置文件拷贝到此文件夹下

cp -r /usr/local/solr-6.6.0/server/solr/* /usr/local/DockerSolrShared/server/solr

运行solr容器

docker run --privileged=true  -v /usr/local/DockerSolrShared/server/solr:/opt/solr/server/solr -d -p 8983:8983 -t solr:6.6

-v 参数冒号之前是宿主机目录,冒号之后是容器目录,容器运行起来就会将刚刚创建好的文件夹挂载到容器内部。
进入容器内部,尝试着去创建一个core

docker exec -it <容器名称> /bin/bash
bin/solr create -c testcore

输入exit退出容器
我们在宿主机上也能看到刚刚创建的core

如果想配置中文分词,可以直接拷贝文件从宿主机到容器内部,这里我也准备好了

docker cp /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/lib/IKAnalyzer2012FF_u1-6.51.jar <容器名称>:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/
docker cp /usr/local/solr-6.6.0/server/solr-webapp/webapp/WEB-INF/classes  <容器名称>:/opt/solr/server/solr-webapp/webapp/WEB-INF/

也可以配置数据导入

docker cp /usr/local/solr-6.6.0/contrib/dataimporthandler/lib <容器名称>:/opt/solr/contrib/dataimporthandler/ 注意:lib目录下必须有solr-dataimporthandler-6.6.0.jar文件
docker cp /usr/local/solr-6.6.0/contrib/db <容器名称>:/opt/solr/contrib/ 注意:db目录下应该有lib目录,lib目录下应该有mysql-connector-java-5.1.25-bin.jar文件

每个core的solrconfig.xml添加以下配置

<lib dir="${solr.install.dir:../../../..}/contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/contrib/db/lib" regex=".*\.jar" />

也可以将现在这个容器重新构建成一个新的容器省的每次运行一个容器都要做这些繁琐的配置,如果你确定这样做的话,请忽略创建testcore的过程。

docker commit <容器名称> <起个新镜像的名字>:<版本号>

Running Solr in Docker的更多相关文章

  1. Running Solr with Maven

    Solr is an open source search server which is built by using the indexing and search capabilities of ...

  2. Running Elixir in Docker Containers

    转自:https://www.poeticoding.com/running-elixir-in-docker-containers/ One of the wonderful things abou ...

  3. VMWare File Format Learning && Use VHD File To Boot VMWare && CoreOS Docker Configuration And Running

    目录 . Virtual Machine Introduce . Vmware Image File Format . VHD File Format . Convert VHD File Into ...

  4. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 是由 ...

  5. Docker+Solr

    原文:Docker+Solr docker 内的solr并不是部署在tomcat里,而是自启动的.默认的home是/opt/solr/server/solr # docker search solr ...

  6. 原 docker 安装使用 solr

    1.安装solr 7.5 docker solr 官网:https://hub.docker.com/_/solr/ docker pull solr:7.5.0 2.启动solr服务 docker ...

  7. Linux的docker安装solr并创建core

    查看solr列表 docker search solr 拉取solr镜像[注:这里默认latest],由于之前下载过 docker pull solr 启动一个做了端口映射的solr[-d:后台运行, ...

  8. 【整理】【docker】【Linux】整理笔记

    1.Linux安装docker 参考文章:https://blog.csdn.net/yanpenglei/article/details/78944553 Docker 要求系统的内核版本高于 3. ...

  9. useful commands for docker beginner

    You may want to add my wechat public account or add my technical blog's RSS feed This list is meant ...

随机推荐

  1. android.app.Activity 的介绍

    发现当前Android的资料不是非常多,并且对于Activity的介绍也非常少.所以把官方文档的android.app.Activity的介绍翻译了一下,增加了一些自己的理解.各位假设认为我自己理解的 ...

  2. UVA 11324 The Largest Clique(强连通分量+缩点DAG的DP)

    题意:给定一个有向图,求出一个最大的结点集,这个节点集中的随意两个点之间至少一个能到达还有一个点. 思路:假设一个点在这个节点集中,那么它所在的强连通分量中的点一定所有在这个节点集中,反之亦然, 求出 ...

  3. ajax初探--实现简单实时验证

    学习技术最好的方式就是在做中学,做一个小demo来对前端输入进行实时验证. 利用ajax技术和Sevlet技术来实现,使用原生的js. 源码可访问,我的Github 什么是ajax Ajax 即&qu ...

  4. jmeter的安装

        1.安装jdk和环境变量配置 变量名:[JAVA_HOME] 变量值:[D:\Program Files\Java\jdk1.8.0_92][jdk安装路径] 变量名:[path] 变量值:[ ...

  5. mysql主从备份及常见问题处理

    1.mysql主从备份基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新 ...

  6. 十五、Spring Boot 环境变量读取 和 属性对象的绑定

    凡是被spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量. 如: @ ...

  7. SSM学习(二)mybatis和spring的集成

    上一篇文章大概搭建了一下ssm的框架,其实还是不完整,我们往项目中添加了spring和mybatis的配置文件,还差一个spring mvc的配置文件,在resource中在新建一个Applicati ...

  8. django的CMS系统(内容管理系统)

    一.什么是CMS系统 CMS具有许多基于模板的优秀设计,可以减少开发的成本. CMS的功能并不只限于文本处理,它也可以处理图片.Flash动画.声像流.图像甚至电子邮件档案. CMS还分各个平台脚本种 ...

  9. 初识Avro

    Avro是Hadoop生态圈的一部分,由Hadoop的创始人Doug Cutting牵头开发,当前最新版本1.8.2.Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用.它的主要特点有: ...

  10. HTML5 高级系列:web Storage

    前言 HTML5 的 web Storage 存储方式有两种:localStorage 和 sessionStorage. 这两种方式都是通过键值对保存数据,存取方便,不影响网站性能.他们的用法相同, ...