任务描述
由于笔记本算力有限,要将python项目部署到服务器上。
在查阅了大量资料后,踩了无数坑后,今天记录一下全过程,希望对大家有帮助。
配置要求
- 需要部署的python项目
- 虚拟机/linus
- docker安装
- 服务器端口
大致流程
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文件
dockFile的编写
建议直接在linus下编写
# 将官方 Python 运行时用作父镜像FROM python:3.8.2# 将工作目录设置为 /pythonprojectWORKDIR ./pythonproject# 将当前目录内容复制到位于 /pythonproject 中的容器中ADD . .# 安装 requirements.txt 中指定的任何所需软件包RUN pip install -r requirements.txt# 在容器启动时运行 tset.pyCMD ["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
登录服务器
ssh 账号@服务器地址
docker载入tar文件
docker image load
docker run!(快结束啦!)
解压完以后就能看到docker镜像了! 然后正常执行docker run操作就可以啦!
(还是把命令贴出来看一下把)
docker run --rm cowsay//cowsay只是一个自定义名字
可以参考docker run
来源地址:https://blog.csdn.net/weixin_41951954/article/details/130006410