Category - Docker

docker consul registrator consul-template HA    2017-07-19 20:54:24    9

compose文件:

version: '2'
services:
    consul-server:
        image: gliderlabs/consul-server:0.6
        command: -bootstrap -advertise 192.168.10.138
        hostname: consul-server
        ports:
            - "8400:8400"
            - "8500:8500"
            - "8600:53/udp"

    registrator:
        image: gliderlabs/registrator:latest
        command: consul://consul-server:8500
        hostname: registrator
        depends_on:
            - consul-server
        volumes:
            - /var/run/docker.sock:/tmp/docker.sock
    app:
      image: tutum/hello-world:latest
      environment:
        # Environment variables used by registrator to register services in consul
        SERVICE_NAME: app
        SERVICE_TAGS: sample
      ports:
        - "8081:80"
      depends_on:
        - consul-template-nginx
# Nginx Load Balancer
    consul-template-nginx:
      image: 1science/nginx:1.9.6-consul
      ports:
        - 80:80
      volumes:
        - ./etc/consul-template:/etc/consul-tem
elasticsearch 全文检索 中文分词    2017-07-19 20:36:23    9
最近用到elasticsearch做全文检索知识库系统,系统已经大致开发完成,需要中文分词,故网上搜索了下配置方法,可尝试几个都不可用,然后就看IK的git源码中有介绍,试了下,相比其他方法简单很多,也有效,故记录下,以供大家参考

参考文章:
    http://blog.csdn.net/liuzhenfeng/article/details/39404435
    https://github.com/medcl/elasticsearch-analysis-ik

Versions

IK versionES version
master2.3.1 -> master
1.9.32.3.3
1.9.02.3.0
1.8.12.2.1
1.7.02.1.1
1.5.02.0.0
1.2.61.0.0
1.2.50.90.x
1.1.30.20.x
1.0.00.16.2 -> 0.19.0

由于版本限制,并且我这里使用的是elascic 2.3.3,所以需要使用IK 1.9.3
1、下载源码:
    https://github.com/medcl/elasticsearch-analysis-ik.git
    tag:v1.9.3

2、构建 ik

修改pom.xml中repositories的配置(原有地址太慢,不确定是否可以,所以切换到自己的仓库中)
<repository>
            <id>mine</id>
            <name>public Releases</name>
            <layout>default</layout>
        </repository>
        <repository>
            <id>mine-meteorite-bi-release</id>
            <name>public Releases</name>
            <layout>default</layout>
elasticsearch docker    2017-07-19 20:34:47    9

1、下载镜像:
docker pull index.docker.io/library/elasticsearch:2.3.3

2、修改配置文件:
分别创建目录:
/usr/share/elasticsearch/config
/usr/share/elasticsearch/data
config目录中创建文件:elasticsearch.yml ,内容如下:
-------------------------------------------------- elasticsearch.yml内容 -------------------------------------------------
network.host: 192.168.10.136
-------------------------------------------------- elasticsearch.yml内容 -------------------------------------------------
config目录中创建文件:logging.yml,内容入下
-------------------------------------------------- logging.yml内容 ------------------------------------------------------
# you can override this using by setting a system property, for example -Des.logger.level=DEBUG
es.logger.level: INFO
rootLogger: ${es.logger.level}, console
logger:
# log action execution errors for easier debugging
action: DEBUG
# reduce the logging for aws, too much is logged under the default INFO
com.amazonaws: WARN

appender:
console:
type: console
layout:
type: consolePattern
conversionPattern: "[%d{ISO8601}][%
elasticsearch linux Docker alpine    2017-07-19 20:31:27    8
在自己构建elasticsearch的Docker镜像的时候,使用最小化的linux系统alpine遇到不能用root用户启动的问题(也许对alpine不太熟悉,无法使用user相关命令),所以网上搜了些资料,记录及梳理自己的操作步奏

参考文章:http://stackoverflow.com/questions/34920801/how-to-run-elasticsearch-2-1-1-as-root-user-in-linux-machine

临时使用root账号启动
启动命令添加如下语句:
-Des.insecure.allow.root=true
bin/elasticsearch -Des.insecure.allow.root=true

默认以root账号启动
或者修改/bin/elasticsearch文件,修改如下语句:
exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Des.path.home="$ES_HOME" -cp "$ES_CLASSPATH" \
修改为:
exec "$JAVA" $JAVA_OPTS $ES_JAVA_OPTS -Des.path.home="$ES_HOME" -Des.insecure.allow.root=true -cp "$ES_CLASSPATH" \



 

by 刘迎光@萤火虫工作室
OpenBI交流群:495266201
MicroService 微服务交流群:217722918
mail: liuyg#liuyingguang.cn
博主首页(防止爬虫):http://blog.liuyingguang.cn
OpenBI问答社区:http://openbi.liuyingguang.cn/

elasticsearch docker Dockerfile    2017-07-19 20:25:33    8
官方给出的elasticsearch镜像需要做不少的修改,并且个人感觉镜像有点太大,所以萌生了自己做镜像的想法
此Docker镜像基于alpine的jre8镜像(使用alpine的原因就是没有太多不必要的组件和命令,docker内部也不需要太多组件)

所需文件目录及介绍:
# 文件目录介绍
* elasticsearch 目录为build docker镜像必要文件,主要替换elasticsearch启动文件(bin目录,主要是修改以root用户启动,参考文章:http://blog.csdn.net/gsying1474/article/details/51939294)和添加中文分词插件IK(plugins目录,主要添加了中文分词插件,参考文章:http://blog.csdn.net/gsying1474/article/details/51909027

Dockerfile文件代码:
 
FROM anapsix/alpine-java:jre8
MAINTAINER firewarm LightingLiu <liuyg@liuyingguang.cn>
ENV ES_PKG_NAME elasticsearch-2.3.3
ADD $ES_PKG_NAME.tar.gz /usr/share/
ADD elasticsearch/ /usr/share/$ES_PKG_NAME/
RUN cd /usr/share/ && \
mv $ES_PKG_NAME elasticsearch && \
chmod +x /usr/share/elasticsearch/bin/*
ENV PATH /usr/share/elasticsearch/bin:$PATH
# Define default command.
CMD ["elasticsearch"]
EXPOSE 9200
EXPOSE 9300

# 此处的Dockerfile解决了如下问题:
1. Docker内部以root启动
2. elasticsearch中文分词插件IK

# build命令
docker build -t firewarm/elasticsearch:2.3.3.1 .

# 镜像使用方式
docker run -v /home/elasticsearch/config:/usr/share/elast
2/6