docker Compose学习记录

https://www.runoob.com/docker/docker-compose.html

就是要启动多个容器,用docker Compose 把他们启动顺序全部写在一个文件下

 

 

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()

 

requirements.txt

flask
redis

 

Dockerfile2

FROM python:3.7-alpine
WORKDIR /code
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN apk add --no-cache gcc musl-dev linux-headers
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["flask", "run"]

 

requirements.yml

# yaml 配置
version: '3'
services:
  web:            #生成镜像的名字
    container_name: lucaxflask     #指定自定义容器名称,而不是生成的默认名称。
    build:                #告诉他dockerfile文件的目录和文件名  如果直接在当前目录就build: . 即可
      context: ./    
      dockerfile: Dockerfile2  #dockerfile文件的目录里面有多个文件,指定要构建的文件
    ports:        #给这个容器映射端口
     - "5000:5000"
    depends_on:        #顺序启动服务 先启动redis 再启动web
      - redis 
  redis:
    container_name: lucaxfredis 
    image: "redis"      #指定容器运行的镜像
    volumes:            #将主机的数据卷或着文件挂载到容器里。
      - "/localhost/postgres.sock:/var/run/postgres/postgres.sock"

 

 

在当前目录下执行

docker-compose up -d     #-d是后台运行

就会一个一个容器去构建镜像并且启动起来

 

1、docker-compose  -f  production.yml  stop      终止项目运行
2、docker-compose  -f  production.yml  build      构建最新镜像
3、docker-compose  -f  production.yml  up      前台运行容器
4、docker-compose  -f  production.yml  up  -d      后台运行容器
5、docker-compose  -f  production.yml  logs -f   -t      查看实时日志
6、docker-compose  -f  production.yml  logs      查看静态日志

 

posted @   凯宾斯基  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2018-09-28 java 的一个hellow word 代码解释
2018-09-28 eclipse 创建一个java项目 运行
2018-09-28 Eclipse环境配置
点击右上角即可分享
微信分享提示