翼度科技»论坛 云主机 服务器技术 查看内容

docker-compose简单使用方法详解

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
Compose介绍

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。
Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

一、前置条件

1.安装 docker-compose ,可以参考这篇文章 https://www.jb51.net/article/203802.htm

二、使用方法

1.目录结构
  1. |--mysite                                                # 根目录
  2.          |----docker-compose.yml        # 用于部署上线       
  3.          |----Dockerfile                        # 用于打包镜像
  4.          |----server.py                                # 测试服务
复制代码
2.创建测试服务【server.py】
  1. from fastapi import FastAPI

  2. # 创建服务对象
  3. app = FastAPI()

  4. # get --------------------------------
  5. @app.get("/")
  6. async def hello():
  7.     return "hello docker-compose"
  8. # ------------------------------------

  9. if __name__ == '__main__':
  10.     import uvicorn
  11.     uvicorn.run(app="server:app", host="0.0.0.0", port=2333, reload=True)
复制代码
ps:一个fastapi服务,访问 ip:2333 会返回 “hello docker-compose”
3.创建 docker 打包文件【Dockerfile】
  1. FROM python:3.7
  2. MAINTAINER ps
  3. WORKDIR /mysite
  4. ADD . /mysite
  5. EXPOSE 2333
  6. RUN python -m pip install -U pip
  7. RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
  8. RUN pip install uvicorn fastapi

  9. CMD python server.py
复制代码
ps:

  • FROM :基础镜像
  • MAINTAINER :指明作者
  • WORKDIR /mysite :指明工作目录为容器中的 /mysite 目录
  • ADD . /mysite :当前路径所有文件复制到容器的 /mysite 目录下
  • EXPOSE 2333 :指明容器中暴露的端口为 2333【此处可省,后面在docker-compose.yml配置了】
  • RUN :run的三行分别是更新pip、换源、安装 fastapi 依赖包
  • CMD :服务启动命令
4.创建 compose 部署文件【docker-compose.yml】
  1. version: '3.5'
  2. services:
  3.   mysite:
  4.     image: mysite_image:0.0.1
  5.     container_name: mysite_container
  6.     build: ./
  7.     restart: always
  8.     ports:
  9.       - "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.1
  • container_name: mysite-container :指定启动后的容器名为 mysite-container
  • build ./ :在当前路径下找 Dockerfile 文件
  • restart: always :开机自启
  • ports :端口映射
5.启动容器
  1. docker-compose up -d
复制代码
ps:

  • -d :后台运行
  • 首次执行时会先打包镜像,在从该镜像启动容器,后续运行则会直接从已存在的镜像启动
6.查看容器
1.docker ps 查看,如果找不到的话可能启动失败了,试试 docker ps -a 查看全部容器【包括启动成功和失败的所有容器】

三、测试

访问 ip:2333

到此这篇关于docker-compose简单使用方法的文章就介绍到这了,更多相关docker compose使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/article/265957.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具