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 apk 的root 权限和USB adb 权限的差别

    USB adb 权限是指,当adb 连接手机时,手机中的守护进程adbd 的权限为root 权限,从而它的子进程也具有root 权限.通常假设adb shell 看到是: Android 4.0 以后 ...

  2. HDU 5288 OO‘s sequence (技巧)

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5288 题面: OO's Sequence Time Limit: 4000/2000 MS (Jav ...

  3. SharePoint Patterns and Practices 简介

    作者:陈希章 发表于 2017年12月22日 SharePoint Patterns and Practices,以下简称PnP,是由微软的SharePoint产品组发起并主持的一个有关SharePo ...

  4. 注册Azure AD 应用程序

    作者:陈希章 发表于2017年3月22日 在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是, ...

  5. centos6.5 yum update 报错Couldn't resolve host 'centos.ustc.edu.cn'

    异常信息 [root@localhost ~]# yum -y update Loaded plugins: fastestmirror, refresh-packagekit, security S ...

  6. python文件操作及os模块常用命令

    1.文件打开 文件句柄 = open('文件路径', '模式') 2.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 三种基本 ...

  7. Hibernate--使用注解配置映射关系

    写在前面: 配置实体类与数据库的映射关系,有两种方式: 1.使用*.hbm.xml    :  2.使用@注解 一:注解的方式: 1.@Entity 加在类的前面,将类声明为持久化类. 2.@Tabl ...

  8. 使用angularjs实现注册表单

    本文是在学习angularjs过程中做的相应的练习 github地址 https://github.com/2016Messi/angularjs1.6-form 演示地址 https://2016m ...

  9. 【java】读取资源文件key->value,java.util.ResourceBundle

    package 国际化; import java.util.ResourceBundle; public class TestResource { public static void main(St ...

  10. Node.js前言

    最近在学Node.js,所以学到一点东西就更新在上面吧,如果有错误,欢迎大家指正.