docker-compose简单使用方法详解

 更新时间:2022年10月26日 10:19:18   作者:什么都干的派森  
Compose通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,这篇文章主要介绍了docker-compose简单使用方法,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

Compose介绍

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

一、前置条件

1.安装 docker-compose ,可以参考这篇文章 /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.py

ps:

  1. FROM :基础镜像
  2. MAINTAINER :指明作者
  3. WORKDIR /mysite :指明工作目录为容器中的 /mysite 目录
  4. ADD . /mysite :当前路径所有文件复制到容器的 /mysite 目录下
  5. EXPOSE 2333 :指明容器中暴露的端口为 2333【此处可省,后面在docker-compose.yml配置了】
  6. RUN :run的三行分别是更新pip、换源、安装 fastapi 依赖包
  7. 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:

  1. version: ‘3.5’ :指定当前的 compose 版本【compose 版本可以通过 docker-compose --version 命令查看】
  2. services :指定部署哪些服务
  3. mysite :如果不指定下面的 image 参数的话,打包后的镜像名会以 当前文件夹名+下划线+你配置的名称 组合,作为你的镜像名【比如:此处我如果没指定下面的 image 参数的话,我的镜像名就是 文件夹名+下划线+配置名 == mysite_mysite】如果指定了 image 参数的话,那么这里的名字可以随便写,相当于站位符,没啥用了
  4. image: mysite_image:0.0.1 :指定镜像名为 mysite_image 版本号为 0.0.1
  5. container_name: mysite-container :指定启动后的容器名为 mysite-container
  6. build ./ :在当前路径下找 Dockerfile 文件
  7. restart: always :开机自启
  8. ports :端口映射

5.启动容器

docker-compose up -d

ps:

  • -d :后台运行
  • 首次执行时会先打包镜像,在从该镜像启动容器,后续运行则会直接从已存在的镜像启动

6.查看容器

1.docker ps 查看,如果找不到的话可能启动失败了,试试 docker ps -a 查看全部容器【包括启动成功和失败的所有容器】

三、测试

访问 ip:2333

在这里插入图片描述

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

相关文章

  • 详解Docker创建支持ssh服务的容器和镜像

    详解Docker创建支持ssh服务的容器和镜像

    本篇文章主要介绍了详解Docker创建支持ssh服务的容器和镜像,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 使用?docker?部署?APISIX的详细介绍

    使用?docker?部署?APISIX的详细介绍

    这篇文章主要介绍了使用?docker?部署?APISIX的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Linux Docker运行springboot项目的步骤详解

    Linux Docker运行springboot项目的步骤详解

    这篇文章主要介绍了Linux Docker运行springboot项目的步骤详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Docker?存储管理的几种方式

    Docker?存储管理的几种方式

    本文主要使用三种不同的方式将数据从Docker主机挂载到容器中,分别为卷(volumes),绑定挂载(bind?mounts),临时文件系tmpfs,还介绍了数据卷容器、数据卷的备份与恢复,对Docker?存储管理相关知识感兴趣的朋友一起看看吧
    2022-07-07
  • 十分钟学会用docker部署微服务

    十分钟学会用docker部署微服务

    这篇文章主要介绍了十分钟学会用docker部署微服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • docker安装nginx并部署前端项目的全过程

    docker安装nginx并部署前端项目的全过程

    作为一个前端,代码写完,最后部署到服务器,这是一个必须要了解的过程,这篇文章主要给大家介绍了关于docker安装nginx并部署前端项目的相关资料,需要的朋友可以参考下
    2022-05-05
  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程

    基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境的详细教程

    K8S全称是Kubernetes,是一个全新的基于容器技术的分布式架构领先方案,这篇文章主要介绍了基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇),对docker K8S持续集成交付环境相关知识感兴趣的朋友一起看看吧
    2021-05-05
  • docker-compose中的环境变量问题

    docker-compose中的环境变量问题

    这篇文章主要介绍了docker-compose中的环境变量问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 用Docker作为PaaS的替代方案是否完美无缺

    用Docker作为PaaS的替代方案是否完美无缺

    Docker的出现似乎又带来了一种新的选择,而且对于开发者来说更加灵活、便捷、易用。既然用户可以直接在Docker上运行,PaaS是否还有应用场景?面对企业繁杂的应用环境,用Docker作为PaaS的替代方案是否完美无缺
    2016-11-11
  • 在Docker上安装配置Oracle教程

    在Docker上安装配置Oracle教程

    本篇文章主要介绍了在 Docker 上配置 Oracle教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论

?


http://www.vxiaotou.com