首先明白一点,ES是一个十分支持容器化运行的东西,加之docker的操作便捷性。前两篇我操作es和kibana真是够够的了。
一、服务器安装docker
#1、卸载旧的版本:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2、安装Docker的依赖环境:
yum install -y yum-utils
#3、设置阿里的镜像仓库:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包的索引
yum makecache fast
#4、安装docker:ce 表示社区版,ee表示企业版
yum install docker-ce docker-ce-cli containerd.io
#5、启动Docker服务:
systemctl start docker
#6、使用docker version 测试是否安装
#7、设置为开机自动启动:
systemctl enable docker
#8、测试:
docker run hello-world
此时会拉取镜像,然后出现hello-world from docker就成功了。
#9、查看镜像是否下载下来
docker images
#10、卸载docker
卸载Docker Engine,CLI和Containerd软件包等docker依赖:
yum remove docker-ce docker-ce-cli containerd.io
删除环境,资源,包括主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
您必须手动删除所有之前已编辑的配置的相关文件。
systemctl restart docker # 重启docker
systemctl stop docker # 关闭docker
二、服务器安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version # 查看版本号,测试是否安装成功
你可以通过修改URL中的版本,可以自定义您的需要的版本。
三、编辑docker-compose.yaml
创建docker-compose.yaml文件在指定目录下。
version: '2.2'
services:
cerebro:
image: lmenezes/cerebro:0.8.3
container_name: cerebro
ports:
- "9000:9000"
command:
- -Dhosts.0.host=http://elasticsearch:9200
networks:
- es72net
kibana:
image: docker.elastic.co/kibana/kibana:7.2.0
container_name: kibana72
environment:
#- I18N_LOCALE=zh-CN
- XPACK_GRAPH_ENABLED=true
- TIMELION_ENABLED=true
- XPACK_MONITORING_COLLECTION_ENABLED="true"
ports:
- "5601:5601"
networks:
- es72net
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
container_name: es72_01
environment:
- cluster.name=geektime
- node.name=es72_01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es72_01,es72_02
- network.publish_host=elasticsearch
- cluster.initial_master_nodes=es72_01,es72_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es72data1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- es72net
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:7.2.0
container_name: es72_02
environment:
- cluster.name=geektime
- node.name=es72_02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.seed_hosts=es72_01,es72_02
- network.publish_host=elasticsearch
- cluster.initial_master_nodes=es72_01,es72_02
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es72data2:/usr/share/elasticsearch/data
networks:
- es72net
volumes:
es72data1:
driver: local
es72data2:
driver: local
networks:
es72net:
driver: bridge
四、启动docker-compose拉取镜像
创建好文件后,在该路径下执行启动命令。
#启动
docker-compose up
#停止容器
docker-compose down
#停止容器并且移除数据
docker-compose down -v
#一些docker 命令
docker ps
docker stop Name/ContainerId
docker start Name/ContainerId
#删除单个容器
$docker rm Name/ID
-f, –force=false; -l, –link=false Remove the specified link and not the underlying container; -v, –volumes=false Remove the volumes associated to the container
#删除所有容器
$docker rm `docker ps -a -q`
停止、启动、杀死、重启一个容器
$docker stop Name/ID
$docker start Name/ID
$docker kill Name/ID
$docker restart name/ID
执行docker-compose up启动镜像:
最后,es kibana cerebro就都下载下来了。
五、查看结果
我们可以看到此时kibana就启动,而且还特么是汉化的版本。加油。
六、cerebro
cerebro是一个管理es集群的可视化的东西,可以很方便的查看es集群的东西,启动端口在9000
https://github.com/onebirdrocks/geektime-ELK
七、总结和踩坑
1、安装componse的时候我是用的上面的那种,没用pip安装,因为python版本真是傻逼。
2、docker拉取镜像的时候,突出一个慢,因为你懂的。
这时候修改一下docker的源就行了,。
vim /etc/docker/daemon.json
添加如下内容:
{
“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn/”,“https://hub-mirror.c.163.com”,“https://registry.docker-cn.com”],
“insecure-registries”: [“10.0.0.12:5000”]
}
然后重启docker : systemctl restart docker
再次执行拉取: docker-compose up