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 查看静态日志
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2018-09-28 java 的一个hellow word 代码解释
2018-09-28 eclipse 创建一个java项目 运行
2018-09-28 Eclipse环境配置