环境描述:

一切操作之前,先安装docker-compose:
可以看官网安装教程
[https://docs.docker.com/compose/install/#install-compose#install-compose](https://docs.docker.com/compose/install/#install-compose#install-compose)
此处使用pip安装docker-compose,因为pip可以为你自动对应版本问题
安装pip
yum -y install epel-release
yum -y install python-pip
确认版本
pip --version
更新pip
pip install --upgrade pip
安装docker-compose
pip install docker-compose
查看版本
docker-compose version
安装完毕如图:



中途出点问题,安装失败,记录如图:



尝试多次,始终失败,暂时放弃如上操作,换种方法:
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
赋予权限
sudo chmod +x /usr/local/bin/docker-compose
执行完毕如下图:

命令参考
# 你自己修改了docker-compose文件或Dockerfile文件的话,请执行
docker-compose build
# 开启 dnmp 服务(-d 后台运行)
docker-compose up -d
# 重启 dnmp 服务
docker-compose restart
# 关闭 dnmp 服务
docker-compose down
# 如果修改或增加了 nginx 服务配置
docker restart nginx
首先第一步,设置国内镜像,避免加载过慢,你不难受吗?
执行命令如下:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
2.执行完毕如下图:

重载及重启docker
sudo systemctl daemon-reload//重新加载
sudo systemctl restart docker//重启
3.搜索查看,下载镜像
可直接访问如下地址查看:
https://www.docker.elastic.co/#
下载镜像:
#下载elasticsearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.1
#下载kibana
docker pull docker.elastic.co/kibana/kibana:7.1.1
如上下载镜像,如果还是加载很慢,直接用国内镜像地址:



修改地址为所需版本即可
docker pull daocloud.io/library/elasticsearch:7.7.1
docker pull daocloud.io/library/kibana:7.7.1
很快加载完毕,Good!
4.查看镜像:

5.编写docker-compose编排二大服务
在/opt/目录下新建一个elkDocker目录
#进入elkDocker目录
cd /opt/elkDocker
#新建docker-compose.yml文件
vi docker-compose.yml
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
container_name: elasticsearch7.1.1
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512_'2.2'm -Xmx512m"
volumes:
- esdata:/usr/share/elasticsearch/data
hostname: elasticsearch
restart: always
ports:
- 9200:9200
- 9300:9300
kibana:
image: docker.elastic.co/kibana/kibana:7.1.1
container_name: kibana7.1.1
environment:
- elasticsearch.hosts=http://elasticsearch:9200
hostname: kibana
depends_on:
- elasticsearch
restart: always
ports:
- "5601:5601"
logstash:
image: docker.elastic.co/logstash/logstash:7.1.1
container_name: logstash7.1.1
hostname: logstash
restart: always
depends_on:
- elasticsearch
ports:
- 9600:9600
- 5044:5044
volumes:
esdata:
driver: local
#:wq保存文件
#在yml文件所在目录执行
docker-compose up -d
#如果都出现done那就创建完成了
#可以执行一下命令查看日志(分别输出elk三个服务的日志)
docker-compose logs
#执行docker ps可以看到三个服务的运行状态(如下图)
过段时间,再次操作执行docker-compose时候,一直会报如下错误:

其实只是版本号的问题,因为dockercompose对应docker版本号会出问题,解决如下:
1.查看当前 docker 版本

2.查看 docker 版本对应的 docker-compose 版本
docker官方文档(https://docs.docker.com/compose/compose-file/
Compose file format Docker Engine release
3.8 19.03.0+
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+
对应的compose版本为3.8
3,修改docker-compose.yml文件,增加version版本,最终如下:
version: "3.8"
services:
elasticsearch:
image: daocloud.io/library/elasticsearch:7.7.1
container_name: elasticsearch7.1.1
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512_'2.2'm -Xmx512m"
volumes:
- esdata:/usr/share/elasticsearch/data
hostname: elasticsearch
restart: always
ports:
- 9200:9200
- 9300:9300
kibana:
image: daocloud.io/library/kibana:7.7.1
container_name: kibana7.1.1
environment:
- elasticsearch.hosts=http://elasticsearch:9200
hostname: kibana
depends_on:
- elasticsearch
restart: always
ports:
- "5601:5601"
volumes:
esdata:
driver: local
补充,容器启动运行
单节点,
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d --name ES01 830a894845e3
操作过程问题记录
准备就绪启动后,访问 kibana地址,报Kibana server is not ready yet
查看 ElasticSearch 的容器内部 ip
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器id或容器名
进入 Kibana 容器内部,修改 kibana.yml 中的ip
docker exec -it kibana容器id /bin/bash
cd config
vi kibana.yml
将 "http://elasticsearch:9200" 中的 elasticsearch 替换成上一步的es容器内部ip。
修改完成之后退出容器,重新启动即可 docker restart kibana容器id
错误2:
Can’t find a suitable configuration file in this directory or any
parent. Are you in the right directory?
Supported filenames: docker-compose.yml, docker-compose.yaml
解决方式:
方案1、可以执行命令时指定绝对路径。
docker-compose -f /usr/local/harbor/docker-compose.yml down -v //移除Harbor服务容器同时保留镜像数据/数据库
docker-compose -f /usr/local/harbor/docker-compose.yml up -d //重启私库
方案2、可以跳转到harbor中进行执行就不会报错了。
cd /usr/local/harbor/ ##目录跳转
docker-compose up -d ##重启私库
docker-compose down -v ##移除Harbor服务容器
[docker-compose常用命令]
docker-compose up -d nginx 构建建启动nignx容器
docker-compose exec nginx bash 登录到nginx容器中
docker-compose down 删除所有nginx容器,镜像
docker-compose ps 显示所有容器
docker-compose restart nginx 重新启动nginx容器
docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose build nginx 构建镜像 。
docker-compose build --no-cache nginx 不带缓存的构建。
docker-compose logs nginx 查看nginx的日志
docker-compose logs -f nginx 查看nginx的实时日志
docker-compose config -q 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose events --json nginx 以json的形式输出nginx的docker日志
docker-compose pause nginx 暂停nignx容器
docker-compose unpause nginx 恢复ningx容器
docker-compose rm nginx 删除容器(删除前必须关闭容器)
docker-compose stop nginx 停止nignx容器
docker-compose start nginx 启动nignx容器
网友评论