Docker-compose

实现对容器集群的快速编排

多服务部署的管理工具

定义docker-compose.yml文件,写好容器之间的调用关系,通过命令完成多个容器的同时启动关闭

解决了容器与容器之间的管理编排问题

1. Docker compose 安装下载

根据官网指导

#下载安装
curl -SL https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看版本
docker compose version

2. 核心概念

一文件、两要素

docker-compose.yml文件

服务(service)::一个个应用容器实例

工程(project):有一组相关联的应用容器实例组成的一个业务单元,在docker-compose.yml文件中定义

4. Docker compose常用命令

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 exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps                      # 展示当前docker-compose编排过的运行的所有容器
docker-compose top                     # 展示当前docker-compose编排过的容器进程
docker-compose logs  yml里面的服务id     # 查看容器输出日志
docker-compose config     # 检查配置
docker-compose config -q  # 检查配置,有问题才有输出
docker-compose restart   # 重启服务
docker-compose start     # 启动服务
docker-compose stop      # 停止服务

5. 启动各服务

5.1 不使用容器编排docker compose

需要一个一个启动,且不一定按顺序(人为操作),操作麻烦

不使用自定义网络,微服务连接mysql与redis需要写死IP地址

#启动mysql
docker run -d --name=mysql-master --privileged=true -p 3307:3306  -v /app/mysql/master/log:/var/log/mysql  -v /app/mysql/master/data:/var/lib/mysql  -v /app/mysql/master/conf:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=root mysql:5.7
#启动nacos
docker run --name mynacos -e MODE=standalone -e MYSQL_SERVICE_HOST=192.168.216.118 -e MYSQL_SERVICE_PORT=3307 -e   MYSQL_SERVICE_DB_NAME=db1 -e  MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root -p 8849:8848 -d nacos/nacos-server
#启动redis
docker run -d --name=redis-node1 --privileged=true --net host -v /app/redis/redis-note1/data:/data redis  --appendonly yes --port 6381
#微服务编译打jar包
#编写Dockerfile文件
#生成镜像
#运行微服务容器实例
#测试接口使用mysql容器实例进行数据的增删改查以及redis容器实例的数据读取与存储

5.2 使用容器编排docker compose

编写docker-compose.yml文件,自定义网络

服务:nacos+redis+mysql+微服务

version: "3"
services:user-Service:image: userms:1.0container_name: usermsports:- "6066:6062"volumes:- /app/userMsDocker/tmp:/tmpnetworks: - hsp_net depends_on: - redis- mysql- nacosredis:image: redisports:- "6381:6379"volumes:- /app/redis/data:/datanetworks: - hsp_netcommand: --appendonly yesnacos:image: nacos/nacos-serverenvironment:MODE: 'standalone'ports:- "8849:8848"networks: - hsp_netmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 'root'ports:- "3307:3306"volumes:- /app/mysql/master/log:/var/log/mysql- /app/mysql/master/data:/var/lib/mysql- /app/mysql/master/conf:/etc/mysql/conf.dnetworks:- hsp_net
networks: hsp_net:

Docker学习(六):docker compose容器编排相关推荐

  1. Docker学习(六)-----Docker数据卷

    十.Docker数据卷 问题:通过镜像创建一个容器,容器一旦被销毁,则容器内的数据将一并被删除,但有些情况下,通过服务器上传的图片出会丢失.容器中的数据不是持久化状态的. 那有没有一种独立于容器,提供 ...

  2. Docker学习六:综合实践

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  3. Docker学习2——Docker高级

    Docker学习2--Docker高级 2.1 Dockerfile解析 2.1.1 Dockfile是什么 Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参 ...

  4. Docker系列(二十四)——Docker实例六Docker安装Redis实例

    < Docker实例三Docker安装Redis实例 > 前言 在前面一篇文章种,完成了 < Docker安装MongoDB实例 >,本篇将继续镜像安装教程,并完成Docker ...

  5. Docker学习(2)-Docker基础1

    Docker学习(1)-Docker简介 1.2 Docker安装及基础命令介绍 https://www.docker.com/#Docker官网 Docker 运行系统 OS 版本选择: Docke ...

  6. Docker学习1——Docker入门

    Docker学习1--Docker入门 参考资料 1.Docker简介 2.尚硅谷2022版Docker实战教程(docker教程天花板) 1.1 Docker简介 1.1.1 Docker引入 假定 ...

  7. Docker学习(3)-Docker镜像构建和使用

    Docker学习(1)-Docker简介 Docker学习(2)-Docker基础1 Docker 镜像与制作 Docker 镜像内是否包含内核(bootfs)? 首先,从镜像的体积大小来说,一个比较 ...

  8. docker学习 --Compose 容器编排,常用命令等.集成spring。mysql。redis

    一切皆容器 处处云原生 有什么用 写好容器之间的编排调用关系 ,一个命令直接使用,相当于spring中的application.xml 例如你可以编排先启动elasticsearch再启动kabbin ...

  9. Docker compose 容器编排

    1. 概述 问题:如果要使用 Docker 运行 LNMP 架构,那么 Nginx.MySQL.PHP. Linux三个服务运行在一个容器里,还是运行在多个容器里呢? 答案是都可以. 你可以分别放在三 ...

最新文章

  1. MyBatis开发入门二:一对多连表查询
  2. IJCAI 2019:中国团队录取论文超三成,北大、南大榜上有名
  3. python用os.system打开wav文件_使用python读取wav格式文件
  4. SSE,MSE,RMSE,R-square指标讲解
  5. jvm性能调优 - 01类加载机制Review
  6. 12.集合:在我的世界里,你就是唯一 / 不可变集合
  7. python文件名有空格_python 解决Windows平台上路径有空格的问题
  8. 使用Anaconda完全替代官方Python
  9. linux关闭时间戳是否有影响,linux – 如何让sec正确忽略时间戳
  10. gdb core调试
  11. .Net中的AOP系列之《方法执行前后——边界切面》
  12. excel支持python吗_没有 Python,微软宣布 Excel 新增 JavaScript 支持
  13. 【Lintcode】029.Interleaving String
  14. 独家 | 林元庆新征程:创立AIbee估值8亿,毗邻百度,吴恩达助攻
  15. 《SAP入门经典(第4版•修订版)》——3.2 SAP硬件基础知识
  16. HDU1256 画8【打印图案】
  17. mongo 监听指定语句
  18. 硬,软连接,以及在windows中的用法
  19. Julia Rust : 看递归上的运行效率PK
  20. Unity3d 周分享(22期 2019.8.30 )

热门文章

  1. 从端到云——工业物联网项目全栈快速开发
  2. Mule学习-简单示例
  3. java版我的世界有溺尸_我的世界如何刷溺尸_minecraft溺尸陷阱制作教程 - 我的世界中文站...
  4. android 打印小票格式,安卓端小票机设置
  5. 排序函数sort()
  6. 查询表名所在数据库名
  7. sicily 1002
  8. 在中断函数和MAIN函数中同时调用同一个函数的有趣现象
  9. OpenGL ES之glRotate函数
  10. 第二天-03-安卓手机的入侵实验