docker-compose 介绍

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 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
目录
相关文章
|
运维 NoSQL Redis
Docker-基本了解
Docker-基本了解
74 3
|
Linux 虚拟化 开发者
docker介绍之一
docker介绍之一
55 1
|
3天前
|
存储 运维 安全
docker使用
总之,Docker 的使用为软件开发和部署带来了极大的便利。通过合理地运用 Docker 技术,可以提高开发效率、降低运维成本、增强系统的稳定性和可扩展性。随着技术的不断发展,Docker 将在更多领域发挥重要作用,成为现代软件开发和运维的重要工具之一。
26 6
|
2月前
|
运维 安全 开发者
Docker
Docker
30 1
|
5月前
|
存储 弹性计算 数据安全/隐私保护
|
NoSQL Java Redis
了解和使用Docker
本文对 Docker 进行全面阐述,详细介绍 Docker 的作用、其基本使用,如常用命令、Dockerfile 的作用及使用、Docker Compose 的作用及使用。常用的基本上都会涉及,其他可以在[ Docker 官网](https://docs.docker.com/)进行查漏补缺。
142 0
|
存储 运维 关系型数据库
Docker(2)
Docker(2)
|
关系型数据库 Linux KVM
Docker是什么,有什么用?
Docker是什么,有什么用?
9486 0
Docker是什么,有什么用?
|
NoSQL 安全 Linux
docker与gosu
gosu命令在docker的entrypoint.sh中经常用到,本文详细分析了gosu的作用和用法
773 0
docker与gosu
下一篇
无影云桌面