本文为部署Python的Flask框架开发的服务,使用flask+uWSGI+Nginx方式,因部署之后post上传文件报错,去掉了Nginx方式,此服务只有一台主机,访问量很少。

部署flask+uWSGI+Nginx方式参考大神的文章:用Docker部署flask+uWSGI+Nginx_夏夏夏夏的博客-CSDN博客_docker flask uwsgi

此文章启动的前提:docker环境已安装完成,镜像已save完成

1. 首先导入使用 docker save 命令导出的镜像centos_docker.tar。

 $ docker load < centos20190922.tar

2. 查看本机器的镜像

$ docker images

3. 启动某一个镜像并进入。flask镜像名称,v1.0为版本号

$ docker run -it flask:v1.0 /bin/bash

4. 进入docker容器中需要生成启动的.sh文件,此步骤应在打包时生成。因为我没在打包时生成.sh文件,需新建.sh的启动文件。文件内容为(根据部署服务启动命令自定义):

source /etc/profile
cd /root/flask_test
uwsgi --ini uwsgi.ini
tail -f /dev/null

  编写完成.sh文件后,测试启动一下是否能正常运行,启动文件命令:sh 文件名

5.在容器外面将容器提交保存为镜像

$ docker commit  docker_flask  docker_flask:v2.1

  docker_flask参数为使用docker ps -a 命令查看的names名称;

  docker_flask:v2.1参数为提交后的名称,:后为版本号

6.定义一个Dockerfile的文件,文件内容如下:

FROM docker_flask:v2.1
ENTRYPOINT sh /root/XXX.sh
EXPOSE 9011

  文件内容说明:第一行引入某个docker的名字和版本;第二行启动docker内的sh文件;第三行docker容器向外暴露的端口

7.然后通过定义的Dockerfile,重新build出新的镜像:

$ docker build -f Dockerfile  -t docker_flask:v2.2 .

  注意:上述命令最后面有个.

8.启动容器,将容器内的端口映射到宿主机上的端口

$ docker run -d -it -p 9081:9011 --restart always --name docker_flask22  docker_flask:v2.2

9.重新保存镜像

$ docker save -o docker_flask_v22.tar docker_flask:v2.2

10.需给其他机器安装启动时,先导入镜像

$ docker load -i docker_flask_v22.tar

11.参考步骤8 重新启动

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐