将python项目用docker 部署到服务器上的全过程

2023-10-28

任务描述

由于笔记本算力有限,要将python项目部署到服务器上。
在查阅了大量资料后,踩了无数坑后,今天记录一下全过程,希望对大家有帮助。

配置要求

  1. 需要部署的python项目
  2. 虚拟机/linus
  3. docker安装
  4. 服务器端口

大致流程

 1.Docker的打包

项目最终结构:

 目录结构

docker_test
├── Dockerfile
├── pythonproject
│││ └── tset.py
│││ └── 其他配置文件
└── requirements.txt

生成 requirements.txt

cd进入到main.py目录
或者直接在pycharm 的Terminal下执行

pipenv lock --requirements > requirements.txt
//或者
pip freeze >> requirements.txt

得到requirement文件

pycharm下Terminal窗口

dockFile的编写

建议直接在linus下编写

# 将官方 Python 运行时用作父镜像
FROM python:3.8.2
# 将工作目录设置为 /pythonproject
WORKDIR ./pythonproject
# 将当前目录内容复制到位于 /pythonproject 中的容器中
ADD . .
# 安装 requirements.txt 中指定的任何所需软件包
RUN pip install -r requirements.txt
# 在容器启动时运行 tset.py
CMD ["python3", "./pythonproject/tset.py"]

镜像的生成

在linus下,cd到Dockerfile文件下

docker build -t cowsay .
详细信息:
docker build -t imagename Dockerfilepath 
# imagename:镜像名称,自定义
# Dockerfilepath:Dockerfile 所在文件夹名称,当前名录为 “.” 

生成镜像

docker build -t imagename Dockerfilepath 

运行镜像

docker run --rm cowsay
--rm : 跑完就删除(因为有时候container比较占空间)

在这里给大家总结一下一些docker命令
docker image ls 列出镜像
docker ps 列出container(正在运行的)(可以加 -a 列出所有的)
docker rm containerID 删除container
docker rmi ImageID 删除image
docker exec -it containerID bash 进入container

IMAGE.tar 的生成(Image打包)

docker save f660ca2347c0 > image.tar
//输出镜像文件到tar文件中
660ca2347c0是Image的ID号,可以通过 docker image ls 查看

至此,我们已经得到IMAGE.tar了
接下来,把它上传上服务器并运行

2.服务器部分

传输文件(非ssh)

scp IMAGE.tar hostname@服务器地址: path

scp命令详解

 登录服务器

ssh 账号@服务器地址

如何登录服务器

docker载入tar文件

docker image load <IMAGE.tar

docker run!(快结束啦!)

解压完以后就能看到docker镜像了! 然后正常执行docker run操作就可以啦!
(还是把命令贴出来看一下把)

docker run --rm cowsay
//cowsay只是一个自定义名字

可以参考docker run

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将python项目用docker 部署到服务器上的全过程 的相关文章

随机推荐

  • 做好测试计划

    一 测试的重要性 如果没有测试计划 会带来以下问题 1 难以确切地知道具体的测试范围 以及应该采取的具体测试策略 2 难以预估具体的工作量和所需要的测试工程师数量 同时还会造成各个测试工程师分工不明确 导致某些测试工作重复执行而有些测试被遗
  • 数字电路中几种基本门电路

    一 概述 1 门电路 实现基本运算 复合运算的单元电路 例如与门 与非门 或门等 门电路中以0或者1表示高低电平 2 获得高低电平的基本原理 对于电阻R有一些说明 电阻R的取值不宜太大也不宜太小 输出高电平电阻R充当电压源内阻的作用 为了保
  • 记录好项目D14

    记录好项目 你好呀 这里是我专门记录一下从某些地方收集起来的项目 对项目修改 进行添砖加瓦 变成自己的闪亮项目 修修补补也可以成为毕设哦 本次的项目是个网上花店商城 一 系统介绍 包括管理员 普通用户两种角色 外加游客 未登录情况 权限 游
  • 栈和队列OJ

    一 括号的匹配 题目介绍 思路 如果 c 是左括号 则入栈 push 否则通过哈希表判断括号对应关系 若 stack 栈顶出栈括号 stack pop 与当前遍历括号 c 不对应 则提前返回 false 栈 stack 为空 此时 stac
  • idc服务器排名戴尔型号,IDC公布2019年全球服务器市场数据:戴尔、HPE和浪潮分列前三...

    日前 IDC发布2019年第四季度及全年全球服务器市场调查数据 2019年全球服务器出货量和销售额分别为1174万台和873亿美元 同比轻微下降0 9 和1 7 其中四季度全球服务器市场增长旺盛 销售额和出货量分别同比增长7 5 和14 0
  • 【每日一题】另类加法

    题目来源 牛客网 链接 另类加法 题目描述 给定两个int A和B 编写一个函数返回A B的值 但不得使用 或其他算数运算符 测试样例 1 2 返回 3 解题思路 本题可以通过位运算实现 具体实现如下 二进制位异或运算相当于对应位相加 不考
  • GUI设计篇

    一 Matlab GUIDE 在MATLAB的命令行窗口中键入guide可以打开GUIDE 这个命令将打开GUIDE Quick Start对话框 它可以看作是一个简单的GUI应用程序的开发向导 利用它可以使用鼠标方便地在窗体上添加各种各样
  • 粒子群优化算法(PSO)及Matlab实现

    粒子群优化算法 Particle Swarm Optimization PSO 于1995年由美国社会心理学家James Kennedy和电气工程师Russell Eberhart受对鸟类群体行为进行建模和仿真研究结果的启发共同提出 通过对
  • 手撸代码-找到环入口

    题目 给一个链表 若其中包含环 请找出该链表的环的入口结点 否则 返回null 思路 1 使用两个指针 快指针与慢指针 慢指针一次走一步 快指针一次走两步 2 两个指针都从A点出发 假设B点是环的入口 如果有环的话 两个指针一定会重合 重合
  • Windows上使用pip安装python opencv

    Windows上使用pip安装python opencv opencv python 只包含opencv库的主要模块 opencv contrib python 包含主要模块和contrib模块 建议您安装的库 因为它包含所有OpenCV功
  • 计算机网络原理-应用层

    应用层 应用层 位于OSI参考模型的第7层 提供了人们所有的应用程序与下层网络的接口 通过下层网络传递信息 现在有很多应用层的协议 一般情况只要和用户相关的程序基本都属于应用层的范畴 早期的OSI参考模型高3层 会话层 表示层与应用层 与T
  • C++中的虚函数表介绍

    在C 语言中 当我们使用基类的引用或指针调用一个虚成员函数时会执行动态绑定 因为我们直到运行时才能知道到底调用了哪个版本的虚函数 所以所有虚函数都必须有定义 通常情况下 如果我们不使用某个函数 则无须为该函数提供定义 但是我们必须为每一个虚
  • 几种不同的推荐引擎比较

    以前也用了一些推荐算法写过一些应用 最近用上了网易云音乐 于是便想写篇推荐引擎的文章 一 推荐引擎 主动发现用户当前或潜在需求 并主动推送信息给用户的信息网络 挖掘用户的喜好和需求 主动向用户推荐其感兴趣或者需要的对象 二 推荐引擎的分类
  • Allegro学习笔记---2.新建PCB+导入网表+元器件快速导入PCB

    一 前期准备 1 将需要用到的PCB封装库和焊盘库准备好 如下图 一般是将 dra psm pad文件都放到同一个文件夹A下面 dra 可编辑的pcb封装文件 psm 被调用的pcb封装文件 不可编辑 pad 焊盘文件 2 先用orcad
  • 如何修改AD中PCB背景黑色域的大小

    方法 1 先将pcb选在keep out layer层 2 用线命令画出一个封闭的区域 得封闭 线命令就是line 选择多条封闭区域可用shift键 3 选中如图上个命令就可以 操作过程可能遇到的问题 遇到这个问题是因为 封闭区域没有全选中
  • Tecplot绘制流体后处理图的问题

    使用的软件为Tecplot Chorus 2017 R3 来处理Fluent17 0的流体仿真数据 看了点击打开链接的官方文档 一直没有搞清楚什么样的格式可以像他给出的一样做多组数据的对比 一开始导入fluent计算产生的data文件 发现
  • 全国计算机等级考试C语言(未来教育平台)

    未来教育 全国计算机等级考试 qq com https mp weixin qq com s biz MzkyNjQwODc2MA mid 2247483676 idx 1 sn 96daf350e5cb0542bbab621cbc8434
  • 步步为营 .NET 代码重构学习笔记 六、移动函数和移动值域(Move Method And Move Field)...

    Move Method 概述 程序中 有个函数与其所驻class之外的另一个class进行更多交流 调用后者或被后者调用 动机 Motivation 如果一个class有太多行为 或如果一个class与另一个class有太多合作而形成高度耦
  • 时间全局过滤器 vue 用法

    min js 定义一个全局过滤器 Vue filter dataFormat function input pattern var dt new Date input 获取年月日 var y dt getFullYear var m dt
  • 将python项目用docker 部署到服务器上的全过程

    任务描述 由于笔记本算力有限 要将python项目部署到服务器上 在查阅了大量资料后 踩了无数坑后 今天记录一下全过程 希望对大家有帮助 配置要求 需要部署的python项目 虚拟机 linus docker安装 服务器端口 大致流程 1