#云原生征文# 云原生之Docker部署flask实践 原创 精华

yukoyu
发布于 2022-5-24 13:31
浏览
9收藏

#云原生征文#云原生之Docker部署flask实践

一、docker的了解

1.Docker 简单介绍

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

2.Docker 使用客户端-服务器架构。

Docker客户端与 Docker守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker 客户端和守护程序使用 REST API,通过 UNIX 套接字或网络接口进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

二、dockerFile 讲解

  • FROM 命令
FROM:构建镜像基于哪个镜像
  • MAINTAINER 命令
MAINTAINER:镜像维护者姓名或邮箱地址
  • RUN 命令
RUN:构建镜像时运行的指令
  • CMD 命令
CMD:运行容器时执行的shell环境
  • VOLUME 命令
VOLUME:指定容器挂载点到宿主机自动生成的目录或其他容器
  • USER 命令
USER:为RUN、CMD、 ENTRYPOINT 执行命令指定运行用户
  • WORKDIR 命令
WORKDIR:为 RUN、CMD、ENTRYPOINT、COPY 、 ADD 设置工作目录
  • EXPOSE 命令
EXPOSE:声明容器的服务端口,仅是声明
  • ENV 命令
ENV:设置容器环境变量
  • ADD 命令
ADD:拷贝文件或目录到容器中,如果是URL或压缩包便会自动下载或自动解压
  • COPY 命令
COPY:拷贝文件或目录到容器中,跟ADD类似,但不具备自动下载或解压的功能
  • ENTRYPOINT 命令
ENTRYPOINT:运行容器时执行的shell命令

三、docker 快速部署python flask框架

1、创建一个最小的Flask

①、 app.py文件

#!/usr/bin/env python
import flask

# Create the application.
APP = flask.Flask(__name__)

@APP.route('/')
def index():
    return "hello 51CTO"

if __name__ == '__main__':
    APP.run()

②、 requirements.txt 文件

导出本项目Python依赖包

pip freeze > requirements.txt

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

2、flask代码和requirements.txt 上传到服务器

①、准备好要上传的文件

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

②、使用MobaXterm连接到服务器

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

③、拖拽文件上传到服务器

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

3、docker 环境准备

①、docker 拉取 python镜像

docker pull python

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

②、编写 Dockerfile文件

FROM python       # 基础镜像,python
MAINTAINER yukoyu    # 镜像作者信息
WORKDIR /app		   
# 工作目录,这个目录对应于镜像内的工作目录,后面的所有涉及到路径的操作都可以
# 使用WORKDIR的相对路径来指定

COPY requirements.txt requirements.txt
# 拷贝requirements.txt 到 镜像中/app/requirements.txt  

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装pip包
COPY . . 
# 将当前文件中的目录复制到/app目录下

ENV FLASK_APP app 
# 设置环境变量,让flask run 命令能够找到启动文件的位置

CMD ["flask","run","-h","0.0.0.0","-p","5000"]
# 执行启动命名 flask run -h 0.0.0.0 -p 5000 列表中的每个元素之间代表空格

③、 准备的目录结构

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

4、使用Dockerfile构建镜像

①、构建

docker build -t flasktest:1.0 .

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

②、查看是否成功

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

③、运行flasktest镜像

docker run --name flasktest01 -p 5000:5000 flasktest:1.0

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

四、测试效果

运行成功

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

#云原生征文# 云原生之Docker部署flask实践-鸿蒙开发者社区

【本文正在参加云原生有奖征文活动】,活动链接:https://ost.51cto.com/posts/12598

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2022-5-24 13:32:46修改
30
收藏 9
回复
举报
9条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

一切皆从hello开始,感谢楼主分享

已于2022-5-24 13:57:54修改
1
回复
2022-5-24 13:57:40
代码一生
代码一生

666

2
回复
2022-5-25 09:31:01
wx628d8c43cac8c
wx628d8c43cac8c

nice

2
回复
2022-5-25 09:54:56
baby4
baby4

nice

1
回复
2022-5-26 17:34:22
baby4
baby4 回复了 wx628d8c43cac8c
nice

握手!

1
回复
2022-5-26 17:40:31
baby4
baby4 回复了 baby4
nice

nice,good job!!!

1
回复
2022-5-26 17:48:52
mb62909108f0445
mb62909108f0445

very good

1
回复
2022-5-27 16:52:31
Haoc_小源同学
Haoc_小源同学

666

回复
2022-5-30 13:03:56
一口气吃不成胖子
一口气吃不成胖子

好文     

回复
2022-6-24 19:52:31
回复
    相关推荐