以上就是给各位分享docker-compose搭建ELK环境,其中也会对dockercompose进行解释,同时本文还将给你拓展DockerCompose搭建ELK、DockerCompose搭建LA
以上就是给各位分享docker-compose搭建ELK环境,其中也会对docker compose进行解释,同时本文还将给你拓展Docker Compose搭建ELK、Docker Compose搭建LAMP环境、Docker Compose搭建mysql主从复制、docker compose搭建wordpress等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- docker-compose搭建ELK环境(docker compose)
- Docker Compose搭建ELK
- Docker Compose搭建LAMP环境
- Docker Compose搭建mysql主从复制
- docker compose搭建wordpress
docker-compose搭建ELK环境(docker compose)
- ELK日志收集分析系统,下面我们ES不做集群,并且是在一台机子上使用docker-compose部署启动
- 新建docker-compose.yml配置文件如下
#author luoye version: "3" #版本号 services: elasticsearch-1: #服务名称(不是容器名) image: elasticsearch #使用的镜像 ports: - "9200:9200" #暴露的端口信息和docker run -d -p 80:80 一样 restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用 container_name: elasticsearch-1 #容器名称 kibana: #服务名称(不是容器名) image: kibana #使用的镜像 ports: - "5601:5601" #暴露的端口信息和docker run -d -p 80:80 一样 restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用 container_name: kibana #容器名称 #挂载文件 volumes: - /usr/games/kibana.yml:/etc/kibana/kibana.yml links: - elasticsearch-1:es01 #容器关联es01是别名 logstash: #服务名称(不是容器名) image: logstash #使用的镜像 restart: "always" #重启策略,能够使服务保持始终运行,生产环境推荐使用 container_name: logstash #容器名称 #挂载文件1.自定义配置文件 2.logstash启动配置文件 3.文件读取的挂载路径 volumes: - /usr/games/logstash.conf:/etc/logstash/conf.d/logstash.conf - /usr/games/logstash.yml:/etc/logstash/logstash.yml - /usr/games/1.txt:/etc/logstash/1.txt links: - elasticsearch-1:es01 #容器关联es01是别名
-
kibana.yml配置文件如下
elasticsearch.url: "http://es01:9200" server.host: "0.0.0.0"
-
logstash.yml配置如下
path.config: /etc/logstash/conf.d
-
logstash.conf配置如下
input { file { path => "/etc/logstash/1.txt" #读取的配置路径,是容器的路径,需要挂载 type => "docker-logstash" start_position => "beginning" #从文件开始处读写 } } output{ elasticsearch{ hosts=>["es01:9200"] index => "logstash-%{+YYYY.MM.dd}" } stdout{codec => rubydebug} }
-
启动执行命令,需要在当前文件下执行:
-
docker-compose up -d
-
Docker Compose搭建ELK
Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存:
sysctl -w vm.max_map_count=262144
创建Elasticsearch数据挂载路径:
mkdir -p /sunsas/elasticsearch/data
对该路径授予777权限:
chmod 777 /sunsas/elasticsearch/data
创建Elasticsearch插件挂载路径:
mkdir -p /sunsas/elasticsearch/plugins
创建Logstash配置文件存储路径:
mkdir -p /sunsas/logstash
在该路径下创建logstash-febs.conf
配置文件(没有安装vim的话可以使用yum install vim
命令安装):
vim /sunsas/logstash/logstash-sunsas.conf
内容如下(注意先进入INSERT模式,不要输错):
input { tcp { mode => "server" host => "0.0.0.0" port => 4560 codec => json_lines } } output { elasticsearch { hosts => "es:9200" index => "febs-logstash-%{+YYYY.MM.dd}" } }
创建ELK Docker Compose文件存储路径:
mkdir -p /sunsas/elk
在该目录下创建docker-compose.yml
文件:
vim /sunsas/elk/docker-compose.yml
内容如下:
version: '3' services: elasticsearch: image: elasticsearch:6.4.1 container_name: elasticsearch environment: - "cluster.name=elasticsearch" #集群名称为elasticsearch - "discovery.type=single-node" #单节点启动 - "ES_JAVA_OPTS=-xms512m -Xmx512m" #jvm内存分配为512MB volumes: - /febs/elasticsearch/plugins:/usr/share/elasticsearch/plugins - /febs/elasticsearch/data:/usr/share/elasticsearch/data ports: - 9200:9200 kibana: image: kibana:6.4.1 container_name: kibana links: - elasticsearch:es #配置elasticsearch域名为es depends_on: - elasticsearch environment: - "elasticsearch.hosts=http://es:9200" #因为上面配置了域名,所以这里可以简写为http://es:9200 ports: - 5601:5601 logstash: image: logstash:6.4.1 container_name: logstash volumes: - /febs/logstash/logstash-febs.conf:/usr/share/logstash/pipeline/logstash.conf depends_on: - elasticsearch links: - elasticsearch:es ports: - 4560:4560
切换到/sunsas/elk
目录下,使用如下命令启动:
docker-compose up -d
第一次启动需要下载,启动完成后,查看docker容器:
docker ps -a
Docker Compose搭建LAMP环境
最近买了《代码审计 企业级WEB代码安全架构》这本书,想要测试一下里面的一些漏洞,但是又不想弄脏我的工作环境,于是便学习了一下怎样用Docker来搭建LAMP环境。
先建个文件夹,用来存我们接下来的文件。
mkdir lamp
cd lamp/
然后写php-apache的dockerfile。 自己写,不直接用image的原因是直接用image没装mysqli插件,连不上数据库。
touch Dockerfile
vi Dockerfile
FROM php:apache
RUN docker-php-ext-install mysqli
EXPOSE 80
接着就可以开始写docker-compse了(有的装docker会自带,没有的话手动装下就好)。
touch docker-compose.yml
vi docker-copmose.yml
version: ''3''
services:
web:
build:
context: ./
dockerfile: Dockerfile
volumes:
- ./php:/var/www/html
ports:
- 80:80
depends_on:
- db
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: alawys
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
检查一下有没有问题。
docker-compose config
然后就可以运行了。
docker-compose up
也可以加上-d参数让它在后台运行。
docker-compose up -d
接着就可以到php目录下写我们的php代码了。 (php目录的owner是root,所以得先切换下owner,否则没有权限进行写操作。)
chown username:usergroup php/
测试下能不能正常连接到数据库。
touch index.php
vi index.php
<?php
$host = ''db'';
$user = ''root'';
$pass = ''root'';
$conn = new mysqli($db,$user,$pass);
if($conn->connection_error)
{
echo $conn->connection_error;
}
else
{
echo "Connected to Database Successfully.";
}
?>
访问localhost,成功。
最后记一下我遇到的一个问题,就是连接docker的守护进程需要权限,所以每次都要加上sudo才能执行命令。 解决办法就是把用户加进docker组.
sudo useradd -aG docker $USER
newgrp docker
Docker Compose搭建mysql主从复制
配置文件以及文档地址: http://git.oschina.net/wangjingj/mycat-rw
系统环境
-
docker 1.12.3
-
mysql5.7.17
-
deepin 15.3桌面版(这个没啥影响,因为我们用docker)
要点说明
-
使用`docker bridge`网络,设置静态IP
-
使用`volumes`挂载,不使用数据卷容器(因为我使用`docker compose`没搞成功 - -!)
-
镜像使用`build`创建(保留扩展性),不使用`image`
-
目前为止,没有暴露端口号,只是两个`slave`link了`master`.马上着手研究使用[mycat](http://www.mycat.org.cn/)完成mysql的主从复制+读写分离,敬请期待.
-
挂载`hosts`文件,以便于使用`hostname`代替ip地址
环境准备
-
`docker-engine`安装
这个直接参考官方文档吧.[debian下安装docker-engine](https://docs.docker.com/engine/installation/linux/debian/)
-
`docker-compose`安装
[debian下安装docker-compose](https://docs.docker.com/compose/install/)
-
拉取`mysql:5.7.17`镜像
需要挂载的配置文件
-
目录结构
简要说明:
-
mysql-master: 存放master配置文件
-
mysql-s1: 存放第一个slave配置文件
-
mysql-s2: 存放第二个slave配置文件
-
hosts: 本地路由
-
mysql-master的配置
没多少东西,只有一个`mysqld.cnf`需要在末尾追加:
mysql-s1/mysql-s2的配置
跟master一样,也只有一个`mysqld.cnf`需要在末尾追加:
hosts文件配置
docker-compose配置文件和Dockerfile
-
目录结构
-
Dockerfile
其实`master s1 s2`的Dockerfile都是一致的,咱就是为了保持一定的扩展性才这么写的.
我们完全可以用`docker-compose`的`image`代替.
在docker-compose.yml中image和build不能一起使用的
好吧,看一下这个`Dockerfile`
-
docker-compose.yml
好吧,重点来了.
run
在`docker-compose.yml`文件的目录下运行
别激动,我们现在才只是完成了一半….
下面开始设置mysql主从复制.
配置master
-
进入master的mysql命令行
输入`MYSQL_ROOT_PASSWORD:`的值m1test,进入mysql命令行模式.
-
创建用于主从复制的用户`repl`
-
给`repl`用户授予slave的权限
-
锁库,不让数据再进行写入动作,这个命令在结束终端会话的时候会自动解锁
-
查看master状态
记下`master-bin.000003`和`636`一会在slave用.
配置slave1
-
进入s1的mysql命令行
输入`MYSQL_ROOT_PASSWORD:`的值s1test,进入mysql命令行模式.
-
连接master
-
启动slave
配置slave2
几乎跟slave一致….咱就不写了…
实验1 测试master写入后是否能够同步到slave
好了,到此位置,配置已经完成,那是否成功了捏… 我们来试一下.
-
在master的mysql命令行下创建数据库 ms-test
-
去两台slave上查看是否也有了mstest数据库.
则证明成功.
实验2 创建一个表,插入一条数据
自己来吧 哈哈哈哈
总结
通过以上步骤,咱们搭建了一个以`docker-compose`管理的mysql `master-slave`模式的主从复制.
下一步,我们需要进行暴露端口,或者使用`links`属性来让应用或者其他客户端工具能够访问我们的mysql.
再下一步,我们需要使用`mycat`中间件来完成我们的读写分离.
支持请点赞,不喜勿喷.
每天一点点,成长多一点.
docker compose搭建wordpress
version: '3.1'
services:
db:
image: MysqL:5.7
restart: always
environment:
MysqL_DATABASE: blog
MysqL_USER: stivenyang
MysqL_PASSWORD: *******
MysqL_RANDOM_ROOT_PASSWORD: '*******'
volumes:
- ../MysqL/blog/conf/my.cnf:/etc/MysqL/my.cnf
- ../MysqL/blog/data:/var/lib/MysqL
ports:
- 3306:3306
wordpress:
image: wordpress
restart: always
environment:
wordpress_DB_HOST: db
wordpress_DB_USER: stivenyang
wordpress_DB_PASSWORD: ********
wordpress_DB_NAME: blog
volumes:
- ../wordpress:/var/www/html
web:
image: Nginx
restart: always
ports:
- 80:80
volumes:
- ../Nginx/Nginx.conf:/etc/Nginx/Nginx.conf
- ../Nginx/conf.d:/etc/Nginx/conf.d
今天关于docker-compose搭建ELK环境和docker compose的介绍到此结束,谢谢您的阅读,有关Docker Compose搭建ELK、Docker Compose搭建LAMP环境、Docker Compose搭建mysql主从复制、docker compose搭建wordpress等更多相关知识的信息可以在本站进行查询。
本文标签: