码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • docker 镜像启动并完成服务部署


    本文为部署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的启动文件。文件内容为(根据部署服务启动命令自定义):

    1. source /etc/profile
    2. cd /root/flask_test
    3. uwsgi --ini uwsgi.ini
    4. 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的文件,文件内容如下:

    1. FROM docker_flask:v2.1
    2. ENTRYPOINT sh /root/XXX.sh
    3. 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 重新启动

  • 相关阅读:
    Springboot毕设项目隔离酒店管理系统j08pw(java+VUE+Mybatis+Maven+Mysql)
    docker内更新显卡cuda cudnn
    robotframework RequestsLibrary Post On Session关键字 body为json的问题
    合合信息财务自动化解决方案亮相腾讯全球数字生态大会,助力企业财务合规建设
    python 调用dll示例
    鸿蒙-实践课程六 android、HarmonyOS 权限对比
    在 C# CLR 中学习 C++ 之了解 extern
    使用yum进行软件安装的基础命令
    Spring相关知识点
    五、e2studio VS STM32CubeIDE之汉化
  • 原文地址:https://blog.csdn.net/liu_xzhen/article/details/127401137
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号