docker-compose常用写法(Docker-Compose初体验)
docker-compose常用写法(Docker-Compose初体验)总结:整个过程演示完成,需要亲自动手实操才能找到感觉,赶快动起手来实操吧。Step6:查看flask 页面Dockerfile: FROM python:3.7-alpine WORKDIR /code COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD python app.py tip:之前文章有详细注释,这里不再赘述。 docker-compose.yml 内容为: version: ‘2’ services: flask: build: . #表示flask服务用dockerfile 来构建 ports: - "5000:5000" #开放的端口 redis: image: “redis:
Step1:什么是 Docker-Compose?
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Step2:Compose 使用的三个步骤
1、使用 Dockerfile 定义应用程序的环境。
2、使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
3、执行 docker-compose build/up 命令来启动并运行整个应用程序。
Step3:项目的目录结构如下所示
Dockerfile:
FROM python:3.7-alpine
WORKDIR /code
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD python app.py
tip:之前文章有详细注释,这里不再赘述。
docker-compose.yml 内容为:
version: ‘2’
services:
flask:
build: . #表示flask服务用dockerfile 来构建
ports:
- "5000:5000" #开放的端口
redis:
image: “redis:alpine” #表示redis 服务直接使用现成的镜像
mysqldb:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- "3306:3306"
requirements.txt 内容为:
flask
redis
pymysql
tip :表示要安装python第三方包
app.py 内容为:
import random
import redis
import time
import pymysql
from flask import Flask
app = Flask(name)
cache = redis.Redis(host=’redis’ port=6379) #host直接是yml文件里定义的
def get_conn(): #调用了mysql容器
conn = pymysql.connect(“mysqldb” ”root” ”123456” ”mysql”)#host直接是yml文件里定义的
cursor = conn.cursor()
sql=”select count(*) from user”
resultList = []
cursor.execute(sql)
result = cursor.fetchall()
columns = cursor.description
for val in result:
tempDict = {}
for cloNum in range(len(columns)):
tempDict[str(columns[cloNum][0])] = val[cloNum]
resultList.append(tempDict)
print(“——————————-打印查询结果———————————“)
print(resultList)
return resultList[0]
def get_hit_count(): #调用了redis容器
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)
def get_random():#自定义的方法
return random.randrange(1 1000)*1000000
@app.route(‘/‘)
def main():
count = get_random()
return ‘Hello Flask! the random number is: {} \n’.format(count) ” the redis incr num:{}”.format(get_hit_count()) ” the count of user:” str(get_conn())
if name == “main“:
app.run(host=”0.0.0.0” debug=True)
Step4:执行docker-compose build 构建镜像(注意一下命令执行的目录)
Step5:执行 docker-compose up -d 启动容器 后台运行(注意一下命令执行的目录)
启动后可以在dashboard 查看一下docker-compose 下有两个容器正在运行:
Step6:查看flask 页面
总结:整个过程演示完成,需要亲自动手实操才能找到感觉,赶快动起手来实操吧。