免费资源网 – https://freexyz.cn/
目录Compose介绍一、前置条件二、使用方法三、测试
Compose介绍
Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。一、前置条件
1.安装 docker-compose ,可以参考这篇文章https://www.jb51.net/article/203802.htm
二、使用方法
1.目录结构
|–mysite # 根目录 |—-docker-compose.yml # 用于部署上线 |—-Dockerfile # 用于打包镜像 |—-server.py # 测试服务2.创建测试服务【server.py】
from fastapi import FastAPI # 创建服务对象 app = FastAPI() # get ——————————– @app.get(“/”) async def hello(): return “hello docker-compose” # ———————————— if __name__ == __main__: import uvicorn uvicorn.run(app=”server:app”, host=”0.0.0.0″, port=2333, reload=True)ps:一个fastapi服务,访问 ip:2333 会返回 “hello docker-compose”
3.创建 docker 打包文件【Dockerfile】
FROM python:3.7 MAINTAINER ps WORKDIR /mysite ADD . /mysite EXPOSE 2333 RUN python -m pip install -U pip RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ RUN pip install uvicorn fastapi CMD python server.pyps:
FROM :基础镜像MAINTAINER :指明作者WORKDIR /mysite :指明工作目录为容器中的 /mysite 目录ADD . /mysite :当前路径所有文件复制到容器的 /mysite 目录下EXPOSE 2333 :指明容器中暴露的端口为 2333【此处可省,后面在docker-compose.yml配置了】RUN :run的三行分别是更新pip、换源、安装 fastapi 依赖包CMD :服务启动命令4.创建 compose 部署文件【docker-compose.yml】
version: 3.5 services: mysite: image: mysite_image:0.0.1 container_name: mysite_container build: ./ restart: always ports: – “2333:2333”ps:
version: ‘3.5’ :指定当前的 compose 版本【compose 版本可以通过 docker-compose –version 命令查看】services :指定部署哪些服务mysite :如果不指定下面的 image 参数的话,打包后的镜像名会以 当前文件夹名+下划线+你配置的名称 组合,作为你的镜像名【比如:此处我如果没指定下面的 image 参数的话,我的镜像名就是 文件夹名+下划线+配置名 == mysite_mysite】如果指定了 image 参数的话,那么这里的名字可以随便写,相当于站位符,没啥用了image: mysite_image:0.0.1 :指定镜像名为 mysite_image 版本号为 0.0.1container_name: mysite-container :指定启动后的容器名为 mysite-containerbuild ./ :在当前路径下找 Dockerfile 文件restart: always :开机自启ports :端口映射5.启动容器
docker-compose up -dps:
-d :后台运行首次执行时会先打包镜像,在从该镜像启动容器,后续运行则会直接从已存在的镜像启动6.查看容器
1.docker ps 查看,如果找不到的话可能启动失败了,试试 docker ps -a 查看全部容器【包括启动成功和失败的所有容器】
三、测试
访问 ip:2333
免费资源网 – https://freexyz.cn/
© 版权声明
THE END
暂无评论内容