docker-compose 介绍

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: docker compose是一个命令行工具,是用于定义和运行多容器Docker应用程序的工具;通过Compose,开发者可以使用YML文件来配置应用程序需要的所有服务。

docker compose是一个命令行工具,是用于定义和运行多容器Docker应用程序的工具;通过Compose,开发者可以使用YML文件来配置应用程序需要的所有服务。


compose 是用来定义和运行一个或多个容器(通常都是多个)运行和应用的工具。使用 compose 可以简化容器镜像的构建以及容器的运行。


compose 使用 YAML 文件来定义多容器之间的关系。一个 docker-compose up 就可以把完整的应用跑起来。

本质上,compose 把 YAML 文件解析成 docker 命令的参数,然后调用相应的 docker 命令行接口,从而将应用以容器化的方式管理起来。它通过解析容器间的依赖关系顺序地启动容器。而容器间的依赖关系由 YAML 文件中的 links 标记指定


官方例子体验


根据 官方文档,创建一个简单的示例,该程序用到了 python,redis,访问url 之后每次加1

地址: docs.docker.com/compose/get…


python 应用,计数器,redis

  1. 应用 app.py
  2. Dockerfile 应用打包成镜像
  3. Dcker-compose.yml 文件(定义整个服务需要的环境,web,reids)
  4. 启动 compose项目,(docker-compose up -d )


启动的流程:

  1. 创建网络
  2. 执行 docker-compose.yml
  3. 启动服务


体验操作流程

  1. 首先在 home 目录下创建一个文件夹 mkdir composetest
  2. 新建一个 app.py 文件, 注意和官网有些不一样


import time
import redis
from flask import Flask
app = Flask(__name__)
cache = redis.Redis(host='redis', port=6379)
def get_hit_count():
    retries = 5
    while True:
        try:
            return cache.incr('hits')
        except redis.exceptions.ConnectionError as exc:
            if retries == 0:
                raise exc
            retries -= 1
            time.sleep(0.5)
@app.route('/')
def hello():
    count = get_hit_count()
    return 'Hello World! I have been seen {} times.\n'.format(count)
if __name__ ==  "__main__":
   app.run(host="0.0.0.0",debug=True)
  1. 新建一个 requirements.txt 文件 flask redis
  1. 新建一个 Dockerfile 文件用来构建应用


shell FROM python:3.6-alpine ADD . /code WORKDIR /code RUN pip install -r requirements.txt CMD [“python”, “app.py”]
  1. 新建一个 docker-compose.yml 文件,这个文件用来启动应用


version: ‘3’ services: web: build: . ports: - “5000:5000” volumes: - .:/code redis: image: “redis:alpine”
  1. 启动 # 在 composetest文件夹下执行命令 # -d 为后台启动 docker-compose up -d
  2. 查看启动结果,如下说明启动成功,访问试试

实战


目标:使用springboot 创建一个小例子,能够访问 redis

步骤:


1. 编写微服务项目
  1. Dockerfile 编写
  2. docker-compose.yml 编排项目
  3. 放到服务器上执行 ,docker-compose up


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4月前
|
负载均衡 应用服务中间件 API
Docker-compose 简单介绍
Docker-compose 简单介绍
|
4月前
|
Shell 应用服务中间件 nginx
6.Docker Compose
6.Docker Compose
|
12月前
|
XML 负载均衡 API
Docker Compose(一)
Docker Compose
147 0
|
12月前
|
应用服务中间件 Docker 容器
|
4月前
|
NoSQL Linux Redis
Docker-Compose
Docker-Compose
181 0
|
4月前
|
应用服务中间件 nginx Docker
docker-compose
docker-compose
108 0
|
11月前
|
网络协议 关系型数据库 开发工具
Docker-compose简单了解
Docke Docker-compose
81 1
|
存储 关系型数据库 MySQL
Docker三剑客之docker-compose
docker-compose 是 Docker 生态系统中的一个重要成员,它允许开发人员使用一个简单的配置文件来定义和运行多个 Docker 容器。通过 docker-compose,你可以定义应用程序的各个组件、容器之间的依赖关系以及网络配置,从而实现在一个命令中启动、停止和管理整个应用程序栈。
323 1
|
Linux Docker Windows
docker-compose之v1.x与v2.x说明
docker-compose之v1.x与v2.x说明
446 0
|
消息中间件 Java Docker
【Docker Compose】
使用微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例。如果每个微服务都要手动启停,那么效率之低、维护量之大可想而知。本节课将讨论如何使用 Docker Compose来轻松、高效地管理容器。为了简单起见将 Docker Compose简称为 Compose。
386 0