万隆的笔记 万隆的笔记
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
博文索引
笔试面试
  • 在线学站

    • 菜鸟教程 (opens new window)
    • 入门教程 (opens new window)
    • Coursera (opens new window)
  • 在线文档

    • w3school (opens new window)
    • Bootstrap (opens new window)
    • Vue (opens new window)
    • 阿里开发者藏经阁 (opens new window)
  • 在线工具

    • tool 工具集 (opens new window)
    • bejson 工具集 (opens new window)
    • 文档转换 (opens new window)
  • 更多在线资源
  • Changlog
  • Aboutme
GitHub (opens new window)
  • Docker

  • Docker Compose

    • Docker Compose简介
    • Docker Compose 的使用
      • 两个重要概念
      • 场景举例
      • 参考
    • Docker Compose命令
    • Docker Compose 模板文件
    • Docker Compose 常用命令
    • Docker Compose 部署 Tomcat
    • Docker Compose 部署 MySQL
    • Docker Compose部署GitLab
    • Docker Compose部署Nexus
    • Docker Compose 部署 Harbor
    • Docker Compose 网络设置
  • Docker
  • Docker Compose
2021-06-15
目录

Docker Compose 的使用

# Docker Compose 的使用

# 两个重要概念

Compose 中有两个重要的概念:

  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

可见,一个项目可以由多个服务(容器)关联而成,Compose 面向项目进行管理。

# 场景举例

最常见的项目是 web 网站,该项目应该包含 web 应用和缓存。下面我们用 Python 来建立一个能够记录页面访问次数的 web 网站。

  1. 新建文件夹,在该目录中编写 app.py 文件
from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    count = redis.incr('hits')
    return 'Hello World! 该页面已被访问 {} 次。\n'.format(count)

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)
  1. 编写 Dockerfile 文件,内容为
FROM python:3.6-alpine
ADD . /code
WORKDIR /code
RUN pip install redis flask
CMD ["python", "app.py"]
  1. 编写 docker-compose.yml 文件,这个是 Compose 使用的主模板文件。
version: '3'
services:

  web:
    build: .
    ports:
     - "5000:5000"
     
  redis:
    image: "redis:alpine"
  1. 运行 compose 项目
wenwl@ubuntu:/usr/local/docker/py-web$ docker-compose up
Starting py-web_redis_1_108631571fa0 ... done
Starting py-web_web_1_91d20ee66296   ... done
Attaching to py-web_redis_1_108631571fa0, py-web_web_1_91d20ee66296
redis_1_108631571fa0 | 1:C 14 Jun 2021 17:14:09.600 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
...... # 篇幅有限省略
web_1_91d20ee66296 |  * Debugger is active!
web_1_91d20ee66296 |  * Debugger PIN: 688-411-012

此时访问本地 5000 端口,每次刷新页面,计数就会加 1。

# 参考

使用docker-compose搭建flask和redis环境 (opens new window)

上次更新: 5/31/2023, 12:37:43 AM
Docker Compose命令

Docker Compose命令→

最近更新
01
2025
01-15
02
Elasticsearch面试题
07-17
03
Elasticsearch进阶
07-16
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式