前言
一般在开发时,会用到很多额外的服务,比如redis,mysql,elk日志服务.现根据docker,记录一些简单的docker镜像部署.
服务器环境
操作系统用的centos7 64. 之前偷懒不想装系统。用的win10,但是部署起来会出现很多问题。比如网络配置,最好还是建议装个centos 无界面版
安装docker
yum install docker
配置docker镜像加速
文件路径 a
安装 Rancher
rancher是docker集群的一个管理平台,可以可视化管理docker镜像以及容器.
目前Rnacher有两大版本一个是1.6,一个是2.0 两个版本差异巨大.后者是基于k8s.本人感觉2.0版本的部署复杂性较高.因此依然使用1.6版本进行部署.
Rancher的安装方式可以支持mysql数据存储,以及集群.在此我使用最简单的方式.不满足需求转到下方链接.
官方安装文档
win10版的docker需要在小docker图标右键切换为linux模式.使用win10的虚拟机
docker命令运行
docker run -d -v rancher-data:/var/lib/mysql --restart=unless-stopped -p 9090:8080 rancher/server
我使用9090端口.这个镜像的latest就是1.6. 2.0版本新开了个镜像库
rancher容器内有mysql作为数据存储结构。所以,mysql的数据目录一定要挂载出去,或者链接外部的mysql。不然你会发现重启rancher后,马上回到解放前。
这里挂载目录用相对路径,docker会自动创建,并且没有目录权限的烦恼。
创建 Rancher-Agent 节点
进入后台后,随便找找就能找到个.hosts.在里面添加即可
ELK服务创建
我有点忙,所以就直接贴Rancher的配置文件了。新建应用,导入以下配置。elk的镜像用的dockerhub默认的,官网的有点慢。
docker-compose.yml
version: '2'
services:
logstash:
privileged: true
image: logstash:7.6.0
stdin_open: true
volumes:
- /home/eface/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
tty: true
links:
- elasticsearch:elasticsearch
ports:
- 5055:5055/tcp
- 5056:5056/tcp
- 5044:5044/tcp
labels:
io.rancher.container.pull_image: always
elasticsearch:
image: elasticsearch:7.6.0
environment:
discovery.type: single-node
stdin_open: true
volumes:
- elk-data:/usr/share/elasticsearch/data
tty: true
labels:
io.rancher.container.pull_image: always
kibana:
image: kibana:7.6.0
stdin_open: true
tty: true
links:
- elasticsearch:elasticsearch
ports:
- 5601:5601/tcp
labels:
io.rancher.container.pull_image: always
rancher-compose.yml
version: '2'
services:
logstash:
scale: 1
start_on_create: true
elasticsearch:
scale: 1
start_on_create: true
kibana:
scale: 1
start_on_create: true