当前位置: 首页 > news >正文

docker系列(9) - docker-compose

文章目录

  • 9. compose编排
    • 9.1 介绍
    • 9.2 安装
    • 9.3 compose常用命令
    • 9.4 实战Springboot部署
      • 9.4.1 准备组件配置文件
        • 9.4.1.1 redis的配置文件
        • 9.4.1.2 MySQL的配置文件
        • 9.4.1.3 SpringBoot打包文件
      • 9.4.2 准备docker-compose.yml
      • 9.4.3 启动服务
      • 9.4.4 测试验证
    • 9.5 实战Elasticsearch+Kibana案例
      • 9.5.1 准备组件配置文件
        • 9.5.1.1 Elasticsearch配置
        • 9.5.1.2 Kibana配置
      • 9.5.2 docker-compose配置
      • 9.5.3 验证测试

9. compose编排

9.1 介绍

多服务部署工具,通过一个docker-compose.yml模板文件,定义一组关联的应用容器为一个项目。
简单来说,就是当我们一个项目有多个服务需要启动时,通过docker-compose直接一键启动,就可以将所有相关的服务同时启动或者停止。

9.2 安装

参考官方安装文档:https://docs.docker.com/compose/install/linux/
以下两种方式都可以:
第一种:包管理器安装

sudo yum install docker-compose-plugin

第二种:手工安装

curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose# 通常不需要执行这句
#sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose#查看版本
docker-compose --version#卸载方法
sudo rm /usr/local/bin/docker-compose

9.3 compose常用命令

说明命令
docker-compose -h帮助
docker-compose up启动所有docker-compose服务
docker-compose up -d启动所有docker-compose服务并后台运行
docker-compose down停止并删除容器,网络,卷,镜像
docker-compose exec yml里面的服务id进入容器内部,停止并删除容器,网络,卷,镜像
docker-compose ps展示当前运行的所有容器
docker-compose top展示当前运行的容器进程
docker-compose logs yml的服务id查看容器输出日志
docker-compose config检查配置
docker-compose config -q检查配置,有问题才输出
docker-compose restart重启服务
docker-compose start启动服务
docker-compose stop停止服务

9.4 实战Springboot部署

使用docker-compose来启动springboot项目。
使用到springboot、redis、mysql组件。

9.4.1 准备组件配置文件

9.4.1.1 redis的配置文件

redis配置文件: /docker/redis/redis.conf

# 开启 AOF 持久化
appendonly yes# 指定 AOF 文件名
appendfilename "appendonly.aof"# 指定 AOF 文件保存目录
dir /data# 关闭 RDB 持久化
save ""
# 开启 RDB 持久化
#save 900 1
#save 300 10
#save 60 10000# 禁用 Redis 的保护模式,允许外部连接
protected-mode no# 允许其他服务访问
bind 0.0.0.0# 指定 Redis 监听的端口
port 6379# 指定日志生成的文件
logfile redis.log
9.4.1.2 MySQL的配置文件

mysql的配置文件:/docker/mysql/conf/my.cnf

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolve
9.4.1.3 SpringBoot打包文件

springboot: 使用7.6.3中打包的镜像springboot:1.0
参考本系列连接跳转

9.4.2 准备docker-compose.yml

version: "3"services: bootService:build: .image: springboot:1.0container_name: springbootenvironment:SPRING_PROFILES_ACTIVE: prodports:- "9002:9002"volumes:- /app/microService:/datanetworks:- bridgedepends_on:- redis- mysqlredis:image: redis:6.2.13container_name: redisprivileged: trueports:- 6379:6379environment:- TZ=Asia/Shanghai- TAKE_FILE_OWNERSHIP=truevolumes:- /docker/redis/data:/data - /docker/redis/redis.conf:/etc/redis/redis.confnetworks:- bridgecommand: redis-server /etc/redis/redis.conf mysql:image: mysql:5.7container_name: mysqlprivileged: trueports:- "3306:3306"networks:- bridgevolumes:- /docker/mysql/log:/var/log/mysql - /docker/mysql/data:/var/lib/mysql- /docker/mysql/conf/:/etc/mysql/conf.denvironment:MYSQL_ROOT_PASSWORD: "root"MYSQL_ALLOW_EMPTY_PASSWORD: "no"command: --default-authentication-plugin=mysql_native_password #解决外部无法访问networks:bridge: 

9.4.3 启动服务

# 先检查配置是否有异常
docker-compose config -q# 启动所有容器
#第一次测试可以不使用-d
docker-compose up   

在这里插入图片描述

在这里插入图片描述

一切正常,转为后台运行

# 先移除所有的
docker-compose down# 再后台运行
docker-compose -d up

9.4.4 测试验证

Commands:build       Build or rebuild servicesconfig      Parse, resolve and render compose file in canonical formatcp          Copy files/folders between a service container and the local filesystemcreate      Creates containers for a service.down        Stop and remove containers, networksevents      Receive real time events from containers.exec        Execute a command in a running container.images      List images used by the created containerskill        Force stop service containers.logs        View output from containersls          List running compose projectspause       Pause servicesport        Print the public port for a port binding.ps          List containerspull        Pull service imagespush        Push service imagesrestart     Restart service containersrm          Removes stopped service containersrun         Run a one-off command on a service.start       Start servicesstop        Stop servicestop         Display the running processesunpause     Unpause servicesup          Create and start containersversion     Show the Docker Compose version informationwait        Block until the first service container stops

例如重启服务:

# 查看服务
docker-compose ls#重启服务
docker-compose restart bootService# 启动服务
docker-compose start bootService# 停止服务
docker-compose stop bootService

在这里插入图片描述

9.5 实战Elasticsearch+Kibana案例

9.5.1 准备组件配置文件

9.5.1.1 Elasticsearch配置

配置文件:/docker/elasticsearch/config/elasticsearch.yml

network.host: 0.0.0.0
discovery.type: single-node
9.5.1.2 Kibana配置

配置文件: /docker/kibana/config/kibana.yml

server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]  #
elasticsearch.username: "admin"
elasticsearch.password: "admin"
i18n.locale: "zh-CN"

[“http://elasticsearch:9200”]这里elasticsearch是指容器的服务名,不设置这个,会导致kibana连接不上elasticsearch。

9.5.2 docker-compose配置

docker-compose.yml

version: '3.3'
services:elasticsearch:image: elasticsearch:7.17.7    # 使用的镜像名称container_name: elasticsearch	# 容器名称ports:	# 指定暴露的端口- 9200:9200- 9300:9300environment: - ES_JAVA_OPTS= -Xms2g -Xmx2g # 指定 JVM 内存大小volumes:	# 指定挂载目录- /docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /docker/elasticsearch/data:/usr/share/elasticsearch/data- /docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins- /docker/elasticsearch/logs:/usr/share/elasticsearch/logsnetworks:	- bridgekibana:image: kibana:7.17.7container_name: kibanaports:- 5601:5601depends_on:	# 服务依赖- elasticsearchvolumes:- /docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.ymlnetworks:- bridge
networks:bridge:

9.5.3 验证测试

#启动:
docker-compose up -d# 卸载
docker-compose down

在这里插入图片描述

http://bidata:5601 访问

http://www.lryc.cn/news/184261.html

相关文章:

  • Vue中如何进行日历展示与操作
  • SpringBoot 返回图片、Excel、音视频等流数据几种处理方式
  • 【Vue面试题一】、说说你对 Vue 的理解
  • vue3 axios
  • 划片机:半导体生产的必备设备
  • 电路维修——双端队列BFS
  • 乌班图22.04 kubeadm简单搭建k8s集群
  • vue3富文本编辑器的二次封装开发-Tinymce
  • typescript 类型声明文件
  • Hadoop伪分布式环境搭建
  • javaee ssm框架项目添加分页控件
  • 2023年中国非晶纳米晶竞争格局、产业链及行业产量分析[图]
  • 在业务开发中遇到的树形结构(部门、区域、职位),递归处理。
  • 张量-算术操作函数
  • 虚拟展厅有什么重要意义,了解虚拟展厅在宣传中的应用
  • 华为OD机试真题-补种未成活胡杨(Java/C++/Go/Python)
  • Java卷上天,可以转行干什么?
  • Pyside6 安装和简单界面开发
  • python读取vivo手机截图,将满屏图片文件移动别的路径
  • 【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞
  • 2023年09月个人工作生活总结
  • 现货白银图表分析的依据
  • python多线程与多进程
  • 62从零开始学Java之时间相关的类都有哪些?
  • 2023年山东安全员c证考试题库及答案解析来了!
  • 【Leetcode】买卖股票系列
  • SLAM面试笔记(8) — 计算机视觉面试题
  • 聊聊MySQL面试常问名词回表、索引覆盖,最左匹配
  • 【面试】C/C++面试八股
  • 学习记忆——数学篇——算术——无理数