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

5_服务编排_docker-compose

服务编排之Docker Compose

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从Dockerfile build image 或者去dockerhub拉取image

  • 要创建多个container

  • 要管理这些container(启动停止删除)

服务编排: 按照一定的业务规则批量管理容器

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

1、利用 Dockerfile 定义运行环境镜像

2、使用 docker-compose.yml 定义组成应用的各服务

3、运行 docker-compose up 启动应用

一、安装Docker Compose

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version
#安装的版本信息:docker-compose version 1.22.0, build f46880fe

二、卸载Docker Compose

# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose

三、 使用docker compose编排nginx+springboot项目

前置条件:需要用到的镜像和已经启动的容器如下,不要冲突了

在这里插入图片描述

  1. 创建docker-compose目录,目录随意
mkdir ~/docker-compose
cd ~/docker-compose
  1. 编写 docker-compose.yml 文件,这个名称是固定的
version: '3'
services:nginx:  #第一个容器,这个容器名称名称可以随便起image: nginx #这个名称是镜像名称,根据实际镜像名称起,如果是最新的不用加版本号,不是的话要加版本号ports:- 80:80links:- appvolumes:- ./nginx/conf.d:/etc/nginx/conf.d #挂载app: #第二个容器,这个容器名称名称可以随便起image: my_app:1.0 #上篇用dockerfile打包的镜像名称expose:- "8080"
  1. 创建./nginx/conf.d目录
mkdir -p ./nginx/conf.d
  1. 在./nginx/conf.d目录下 编写coderhome.conf文件
server {listen 80;access_log off;location / {proxy_pass http://app:8080;}}
  1. 在~/docker-compose 目录下 使用docker-compose 启动容器
docker-compose up #加-d表示后台启动

在这里插入图片描述

  1. 测试访问
http://119.xx.xx.xxx/test

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

相关文章:

  • Java基本数据类型以及包装类型的常量池技术
  • P1054 [NOIP2005 提高组] 等价表达式
  • 什么牌子蓝牙耳机好用不贵?国产性价比高的蓝牙耳机推荐
  • 明明花钱上了ERP,为什么还要我装个MES系统
  • JAVA中的集合框架有哪些?
  • 用Jmeter进行接口自动化测试的工作流程你知道吗?
  • Java 中的设计模式有哪些?(十九)
  • 奇数单增序列
  • Seata介绍
  • VK Cup 2017 - Round 1 A - Bear and Friendship Condition(并查集维护大小 + dfs 遍历图统计边数)
  • 为UOS启用VNC和Windows远程桌面
  • Java时间类(七)-- LocalDateTime()类
  • 卢北辰:数据点亮梦想,能力驱动人生 | 提升之路系列(九)
  • 数据库基础及用户管理授权
  • 比特米盒子刷安卓ATV6.0
  • 【用python的QT做信号处理的界面】
  • 【Linux】进程间通信 —— 管道
  • 知识管理在企业中的重要性
  • Socks5、网络安全、代理IP技术详解
  • C++学习day--09 字符串比较、运算符
  • 缓存和数据库一致性问题
  • 4月京东生鲜水果行业数据报告:榴莲销量增长400%,市场格局剧变
  • Windows无法完成格式化怎么办?正确的3个解决方法!
  • 基于aspnet个人博客网站dzkf6606程序
  • 不黑艺术学社京藏行——参观五台山孙溟㠭为五台山红英师治印
  • mysql数据之表管理-mysql高级管理
  • 公司新来的00后真是卷王,工作没2年,跳槽到我们公司起薪18K都快接近我了
  • 面试题30天打卡-day19
  • ASEMI代理ADI亚德诺LTC6992IS6-1#TRMPBF车规级芯片
  • Oracle PL/SQL基础语法学习15:静态表达式