栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

docker部署一个最简单的flask项目

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker部署一个最简单的flask项目

一、需要一个flask项目

这里采用pycharm新增一个最小的flask项目

启动项目的入口是app.py

启动后,访问控制台地址即可 

注意:当项目中的依赖包太多的时候,需要批量安装依赖,我们可以一次性把依赖的包名导出到一个txt

1、使用自带的方法(不建议,虚拟环境会导出全部的依赖)

在当前项目根目录下执行命令pip freeze > requirements.txt 

即可生成一个文件requirements,迁移环境可以通过pip install -r requirements.txt安装全部的依赖

2、使用pipreqs(只会导出第三方库)

安装一个python三方库,pip install pipreqs

在项目根目录的控制台输入:pipreqs ./ --encoding=utf8

自动在根目录生成一个文件requirements.txt,迁移环境可以通过pip install -r requirements.txt安装全部的依赖

二、安装docker 1、如果安装了宝塔linux面板,直接在应用商店安装即可

 宝塔安装:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

安装完成后可以看到username和password ,通过默认的8888端口访问,外网ip是服务器ip

验证方式:打开控制台:docker --version

2、手动安装docker(用的腾讯云服务器)

2.1.卸载旧版本

yum remove docker

docker-client

docker-client-latest

docker-common

docker-latest

docker-latest-logrotate

docker-logrotate

docker-engine

2.2、yum install -y yum-utils 安装一些工具包,可能使用

2.3、yum install docker-ce docker-ce-cli containerd.io  安装最新的docker社区

2.4、启动docker:systemctl start docker

2.5、验证安装成功:docker --version

2.6、修改下载源为国内源

        vim  /etc/docker/daemon.json  打开是个空文件,在里面添加腾讯或者阿里等源(可添加多个),这里用腾讯的源

{
    "registry-mirrors" : [
    "https://mirror.ccs.tencentyun.com"
  ]
}

----------------------------------------------
        i : 进入编辑状态

        esc:退出编辑状态

        冒号:输入wq 保存并退出

2.7、重启docker 使配置生效

        systemctl daemon-reload

         systemctl restart docker.service

2.8、查看配置是否生效

        docker info 

        拉到最后看配置是否是新增的国内源

3、安装镜像和启动项目

  3.1、查看全部镜像:docker images

  3.2、查看运行中的容器:docker ps 

  3.3、查看运行过的容器:docker ps -a

3.4、删除镜像:docker rmi 镜像名

3.5、删除容器:docker rm 容器id

3.6、运行一个镜像:docker run 镜像名

尝试拉取一个镜像,运行一个容器

3.6、运行一个hello word(docker 用于测试的项目)

docker run hello-word  (不存在这个项目,默认会去下载)

 

 删除这个镜像:

先删除容器:docker ps -a  查看容器id

 删除成功后,开始flask项目正式配置!

4、flask项目的导入(以宝塔面板为例)

4.1上传flask项目文件

        

我是上传到根目录,方便找,

4.2、新增镜像文件

进入项目文件夹里面,新增一个文件Dockerfile,docker的默认启动文件

vim Dockerfile

FROM python:3.7   #指定下载python版本

WORKDIR ./flask_demo #工作路径
 
ADD . . #第一个参数“.”代表Dockerfile所在的目录,即python项目d下所有的目录(不包括文件夹名字本身自身)。第二个参数“.”代表镜像的工作目录

RUN pip install -r requirements.txt   #安装依赖文件
EXPOSE 5000  # 将我们这个运行的容器的 5000 端口向外暴漏

CMD ["python", "./app.py"]        #命令行启动项目

 在当前目录下创建镜像:

docker build -t flask_demo .

-t 参数指定了最终镜像的名字为demo:v1。注意,会看到 docker build 命令最后有一个 .   标识当前目录

查看是否创建了镜像

docker images

4.3、运行docker容器

将容器内的端口映射到容器外,容器内的端口不映射,当服务器的5000端口被访问的时候,不会去找对应的容器端口

4.4、运行后,通过浏览器访问:ip:5000

 docker run -d -p 8080:5000 flask_demo

停止项目 :

docker stop 容器id

 

4.5、关于访问不到的问题

        检查是否云服务器将5000端口开放了

        检查项目配置,从头到尾

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012300.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号