首页 > 其他分享 >Docker-compose 实战

Docker-compose 实战

时间:2024-12-23 22:31:22浏览次数:3  
标签:实战 compose Flask app build 镜像 docker Docker

一、以下是一个使用 Docker-compose 启动 Flask 应用的示例:

项目结构

  app/
  |-- app.py
  |-- requirements.txt
  |-- Dockerfile
  |-- docker-compose.yml

app.py 文件内容

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello from Flask in Docker!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

requirements.txt 文件内容

Flask

Dockerfile 文件内容

# 基于官方 Python 3.9 镜像构建
FROM python:3.7
# # 设置工作目录
WORKDIR /app
# # 复制当前目录下的所有文件到容器内的 /app 目录
COPY . /app
# # 安装应用依赖
RUN pip install -r requirements.txt
# 暴露容器内应用监听的端口
EXPOSE 5000
 # 定义容器启动时执行的命令
CMD ["python", "app.py"]

docker-compose.yml 文件内容

version: '3'
services:
  flask-app:
    build: .
    ports:
      - "5000:5000"

在上述 docker-compose.yml 文件中:

  • version: '3' 表示使用 Docker-compose 的版本 3 语法。
  • services 下定义了一个名为 flask-app 的服务。
  • build:. 表示基于当前目录下的 Dockerfile 构建镜像。
  • ports 部分将容器内的 5000 端口映射到主机的 5000 端口,以便在主机上可以访问容器内的 Flask 应用。

在包含 docker-compose.yml 文件的目录下,执行命令 docker-compose up -d 即可在后台启动 Flask 应用容器。之后,可以在浏览器中访问 http://localhost:5000 来查看 Flask 应用的输出 Hello from Flask in Docker! 。如果想要停止容器,可以使用命令 docker-compose down

二、这个警告信息来自 Docker Compose,意味着 flask-app 服务的镜像是新建的,因为之前不存在。如果你对 Dockerfile 或其依赖的文件(比如 requirements.txt)做了更改,并希望这些更改生效,你需要重新构建镜像。

以下是重新构建服务镜像的步骤:

使用 docker-compose build

在包含 docker-compose.yml 文件的目录中,运行以下命令来重新构建镜像:

docker-compose build

这个命令会根据 docker-compose.yml 文件中定义的服务重新构建所有服务的镜像。

使用 docker-compose up --build

如果你想在重新构建镜像的同时启动服务,可以使用以下命令:

docker-compose up --build

这个命令不仅会重新构建服务的镜像,还会启动服务。

注意事项

  • 确保你在运行这些命令之前已经保存了对 Dockerfile 或其他相关文件的更改。

  • 如果你只想重新构建某个特定的服务,可以通过指定服务名称来构建:

    docker-compose build flask-app
    

    或者

    docker-compose up --build flask-app
    
  • 确保 docker-compose.yml 文件和 Dockerfile 位于同一目录下,并且 Dockerfile 中的指令正确无误。

按照这些步骤操作,你可以确保 flask-app 服务使用的是最新的镜像,包含了所有最新的更改。

标签:实战,compose,Flask,app,build,镜像,docker,Docker
From: https://www.cnblogs.com/xfbk/p/18625186

相关文章

  • 工业缺陷检测实战——磁瓦表面缺陷分类
     第一步:准备数据6种磁瓦表面缺陷:self.class_indict=["MT_Blowhole","MT_Break","MT_Crack","MT_Fray","MT_Free","MT_Uneven"],总共有1330张图片,每个文件夹单独放一种数据第二步:搭建模型本文选择一个ConvNext网络,其原理介绍如下:ConvNext(Convoluti......
  • docker、nginx、redis、微服务架构期末复习
    一、选择题1、软件架构是指什么?A)设计和构建软件系统时所采用的基本结构和原则B)软件系统的具体实现细节C)软件系统的用户界面设计D)软件系统的测试方法答案:A2、在软件设计中,架构域包括以下哪些部分?A)业务架构、数据架构、产品架构、应用架构、技术架构B)业......
  • 4-Gin HTML 模板渲染 --[Gin 框架入门精讲与实战案例]
    HTML模板渲染下面是使用Gin框架在Go语言中进行HTML模板渲染的四个示例。每个示例都包含了必要的注释来解释代码的作用。示例1:基本模板渲染packagemainimport( "github.com/gin-gonic/gin" "net/http")funcmain(){ r:=gin.Default() //加载HTML模......
  • 【嵌入式Linux】---- 基于petaLinux和SDK开发的LED驱动和应用测试(全流程实战)
    1配置petaLinux环境变量在Linuxproject目录下,打开终端,输入命令source/opt/pkg/petalinux/2018.3/settings.sh2新建petaLinux工程petalinux-create-tproject--templatezynq-nZYNQ7010_LED3配置petaLinux工程输入cdZYNQ7010_LED,进入刚刚创建的工程文件;输入p......
  • Java项目实战之基于 Spring Boot、MyBatis 和 Vue.js 的智能停车场系统设计与技术选型
    1.系统概述本智能停车场系统旨在为停车场提供高效、便捷的管理解决方案,涵盖车辆进出管理、车位预订、停车费用计算、用户信息管理等功能,同时提供管理员操作界面和用户移动端应用,提升停车场运营效率和用户体验。1.1目标实现停车场自动化管理,提高车位利用率,减少人工成本,为用户提......
  • 思源笔记 Docker-Compose 一键部署及解锁付费功能教程
    思源笔记Docker-Compose一键部署及解锁付费功能教程官方开源版本version:"3.9"services:siyuan:image:b3log/siyuancontainer_name:siyuanuser:rootcommand:['--workspace=/siyuan/workspace/','--accessAuthCode=Qsxzxc123@']......
  • linux安装docker
    https://zhuanlan.zhihu.com/p/708866967第一步:新建或编辑daemon.confvi/etc/docker/daemon.conf第二步:daemon.json中编辑如下"registry-mirrors":["https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.mirrors.ustc.ed......
  • 思源笔记 Docker-Compose 一键部署及解锁付费功能教程
    思源笔记Docker-Compose一键部署及解锁付费功能教程官方开源版本version:"3.9"services:siyuan:image:b3log/siyuancontainer_name:siyuanuser:rootcommand:['--workspace=/siyuan/workspace/','--accessAuthCode=Qsxzxc123@']......
  • Docker Toolbox配置TensorFlow
    因为当前windows10操作系统版本不满足TensorFlow官方文档中的安装最新的DockerDesktop所需要求,所以替代方案是使用DockerToolbox,特此记录一下。1.下载软件包#Requiresthelatestpippipinstall--upgradepip#CurrentstablereleaseforCPUandGPUpipinstalltens......
  • 利用Python爬虫高效获取苏宁商品信息:按关键字搜索的实战指南
    在信息爆炸的今天,数据的获取和处理能力成为了衡量一个企业竞争力的重要指标。对于电商平台而言,如何快速、准确地获取商品信息,成为了提升运营效率的关键。本文将详细介绍如何使用Python爬虫技术,高效地按关键字搜索苏宁商品,并提供详细的代码示例。1.Python爬虫技术概述Python......