当前位置:硬件测评 > 使用Docker Compose快速搭建本地测试环境

使用Docker Compose快速搭建本地测试环境

  • 发布:2023-10-07 11:50

-->

前言

Compose 是一个用于定义和运行多个 Docker 应用程序的工具。我们的应用程序可以使用 YAML (dockder-compose.yml) 文件进行配置。然后用一个简单的命令就可以启动所有的服务。 Compose 编排 Docker 服务的优势在于单机测试场景,因为 Compose 易于安装并且可以开箱即用,并且 yaml 定义也重用了 Dockerfile 的语法。但集群内的容器编排服务还是推荐使用K8S或者Mesos+Marathon等编排调度系统。

演示环境

$ uname -a
18.6。 内核版本 18.6。:四月星期四 :: PDT;根:xnu-4903.261.~/RELEASE_X86_64 x86_64 $ docker版本
客户端:Docker 引擎 - 社区
版本:18.09.
API版本:1.39
Go版本:go1.10.8
Git 提交:
建成:二月星期日::
操作系统/架构:/amd64
实验:假

示例

照例,我会用一个例子来介绍接下来要解释的内容。下面我将演示使用Docker Compose一键运行集中式日志系统ELK。 ELK是一套日志收集解决方案,是Elasticsearch、Logstash和Kibana这三个软件产品的缩写。

ELK的docker-compose.yml来自github仓库docker-elk。docker-compose.yml的内容如下:

版本:'2' 服务: 弹性搜索:
体型:
上下文:elasticsearch/
参数:
ELK_VERSION:$ELK_VERSION
卷数:
- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
端口:
- “9200:9200”
- “9300:9300”
环境:
ES_JAVA_OPTS: "-Xmx256m -Xms256m"
ELASTIC_PASSWORD:更改我
网络:
- 麋鹿 日志存储:
体型:
上下文:logstash/
参数:
ELK_VERSION:$ELK_VERSION
卷数:
- ./logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
- ./logstash/pipeline:/usr/share/logstash/pipeline:ro
端口:
- “5000:5000”
- “9600:9600”
环境:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
网络:
- 麋鹿
取决于:
-弹性搜索 木花:
体型:
上下文:kibana/
参数:
ELK_VERSION:$ELK_VERSION
卷数:
- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
端口:
- “5601:5601”
网络:
- 麋鹿
取决于:
-弹性搜索 网络: 麋鹿:
司机:桥

进入docker-compose.yml目录,执行docker-compose up -d命令即可在本地环境启动ELK系统:

$ docker-compose up -d
构建 kibana
步骤/:ARG ELK_VERSION
步骤/:来自 www.sychzs.cn/kibana/kibana:${ELK_VERSION}
7.1.:从kibana/kibana
拉取 8ba884070f61:已经存在
3dd92e31d54b:正在下载 [====================> ] .31MB/.81MB
47d37f21fc3a:拉动完成
97eef8537832:拉动完成
151d3d8996bb:拉动完成
003e03312113:拉动完成
0fbb6a4413a0:拉取完成
c455cf619e40:拉取完成
摘要:sha256:fbf558c6df18500f00ab9c1e1ce2d566ad2c1800d023106e4a4a85274b0d40cd
状态:已下载 www.sychzs.cn/kibana/kibana:7.1 的新映像。
---> 67f17df6ca3e
成功构建67f17df6ca3e
已成功标记 docker-elk_kibana:latest
警告:构建服务 kibana 的映像是因为它尚不存在。要重建此映像,您必须使用“docker-compose build”或“docker-compose up --build”。
创建 docker-elk_elasticsearch_1 ... 完成
创建 docker-elk_kibana_1 ... 完成
创建 docker-elk_logstash_1 ... 完成
连接到 docker-elk_elasticsearch_1、docker-elk_kibana_1、docker-elk_logstash_1
$ docker-compose ps
名称 命令状态端口
-------------------------------------------------- -------------------------------------------------- --------------------------
docker-elk_elasticsearch_1 /usr/local/bin/docker-entr ... 向上 0.0.0.0:->/tcp, 0.0.0.0:->/tcp
docker-elk_kibana_1 /usr/local/bin/kibana-docker Up 0.0.0.0:->/tcp
docker-elk_logstash_1 /usr/local/bin/docker-entr ... 向上 0.0.0.0:->/tcp, /tcp, 0.0.0.0:->/tcp

访问kibana页面:

如果使用传统物理流程搭建ELK系统,必须先下载安装Java JDK,下载ELK版本,然后安装Elasticsearch、Logstash和Kibana。这整套只用了半天时间就完成了。现在集成到 docker-compose 中,只需要一个命令 docker-compose up 即可运行它。因此,使用docker-compose可以快速搭建本地测试环境,大大提高开发效率。与使用 docker run 逐个启动和停止容器相比,docker-compose 提供了容器编排服务,定义了一组容器的启动和停止依赖关系。您还可以使用 docker-compose stoplogstash 来停止单个logstash 和其他服务。

详细说明

通过上面的例子,我们已经掌握了Docker Compose的启动、停止等简单用法。那么Doc​​ker Compose有多少种用法呢?我们可以通过--help:

得到答案
$ docker-compose --help
使用 Docker 定义和运行多容器应用程序。用途:
docker-compose [-f ...] [选项] [命令] [ARGS...]
docker-compose -h|--help 选项:
-f, --file FILE 指定备用撰写文件
(默认:docker-compose.yml)
-p, --project-name NAME 指定备用项目名称
(默认:目录名称)
--verbose 显示更多输出
--log-level LEVEL 设置日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
--no-ansi 不打印 ANSI 控制字符
-v, --version 打印版本并退出
-H, --host 要连接的主机守护进程套接字 --tls 使用 TLS;由--tlsverify
暗示 --tlscacert CA_PATH 仅由该 CA 签署的信任证书
--tlscert CLIENT_CERT_PATH TLS 证书文件的路径
--tlskey TLS_KEY_PATH TLS 密钥文件的路径
--tlsverify 使用 TLS 并验证远程
--skip-hostname-check 不要根据
检查守护进程的主机名 客户端证书中指定的名称
--project-directory PATH 指定备用工作目录
(默认:Compose 文件的路径)
--compatibility 如果设置,Compose 将尝试转换部署
v3 文件中的密钥与其非 Swarm 等效项的密钥 命令:
build 构建或重建服务
从 Compose 文件生成 Docker 捆绑包
config 验证并查看 Compose 文件
创建 创建服务
down 停止并删除容器、网络、镜像和卷
events 从容器接收实时事件
exec 在正在运行的容器中执行命令
help 获取有关命令的帮助
图片列表图片
kill 杀死容器
日志 查看容器的输出
暂停 暂停服务
port 打印端口绑定的公共端口
ps 列出容器
pull 拉取服务镜像
Push 推送服务图片
restart 重启服务
rm 移除停止的容器
run 运行一次性命令
规模 设置服务的容器数量
start 启动服务
stop 停止服务
top 显示正在运行的进程
unpause 取消暂停服务
up 创建并启动容器
version 显示 Docker-Compose 版本信息

-f 指定撰写文件,不是必需的。如果未指定,将使用当前路径或父目录的 docker-compose.yml 文件。

-p指定项目名称,默认为目录名称,如示例中默认的docker-elk。

-v 显示 Docker Compose 版本。

--tls* 是与加密证书相关的选项。本地环境一般不用。

build 创建容器服务,例如使用 Dockerfile 构建镜像。

ps 显示所有容器。

pull 拉取服务镜像。

push 推送服务镜像。

start 启动服务。

stop 停止服务。

up 创建并启动容器服务。相当于构建(或拉取)并启动。

version 显示 Docker Compose 版本信息。

$ docker-compose 版本
docker-compose 版本 1.23.,构建 1110ad01
docker-py版本:3.6.
CPython版本:3.6.
OpenSSL 版本:OpenSSL 1.1.0h 三月
$ docker-compose 停止logstash
停止 docker-elk_logstash_1 ... 完成
$ docker-compose ps
名称 命令状态端口
-------------------------------------------------- -------------------------------------------------- -----------------
docker-elk_elasticsearch_1 /usr/local/bin/docker-entr ... 向上 0.0.0.0:->/tcp, 0.0.0.0:->/tcp
docker-elk_kibana_1 /usr/local/bin/kibana-docker Up 0.0.0.0:->/tcp
docker-elk_logstash_1 /usr/local/bin/docker-entr ... 退出
$ docker-compose 启动logstash
启动logstash...完成
$ docker-compose ps
名称 命令状态端口
-------------------------------------------------- -------------------------------------------------- --------------------------
docker-elk_elasticsearch_1 /usr/local/bin/docker-entr ... 向上 0.0.0.0:->/tcp, 0.0.0.0:->/tcp
docker-elk_kibana_1 /usr/local/bin/kibana-docker Up 0.0.0.0:->/tcp
docker-elk_logstash_1 /usr/local/bin/docker-entr ... 向上 0.0.0.0:->/tcp, /tcp, 0.0.0.0:->/tcp

总结

文章演示了通过一键运行ELK系统使用Docker Compose搭建环境的效率,然后详细介绍了Docker Compose大部分选项的含义和使用方法。

参考

https://www.sychzs.cn/compose/overview/

<!--
p.p1 {边距:0.0px 0.0px 0.0px 0.0px;字体:11.0px Menlo;颜色: #000000}
span.s1 {字体变体连字:非通用连字}
-->

-->

相关文章