准备工作
- 一个可以正常执行的py文件
- docker环境
- python环境
进入项目文件夹
-
运行一次py文件对程序进行打包前的测试
-
在项目主目录下编写Dockerfile文件
内容模板如下:
需要注意的是这个文件的写法并非如此固定,根据需要可以自行编辑
# Use an official Python runtime as a parent image
FROM python:3.7.6
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
# 此部分使用了清华源加快了速度
# 清华源使用只需要将域名改成 pypi.tuna.tsinghua.edu.cn/simple 即可
# 如果是手动敲命令
RUN pip install --trusted-host pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
# Make port 80 available to the world outside this container
EXPOSE 80
# Define environment variable
ENV NAME daily189
# Run app.py when the container launches
CMD ["python", "Run_all.py"]
- 对项目使用的库进行备份
pip freeze > requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
- 对requirements.txt文件中非必要的库进行删减(如格式标准相关的库)
制作镜像
1.在项目根目录运行:
docker build -t imagename Dockerfilepath
# Dockerfilepath:Dockerfile 所在文件夹名称,当前名录为 “.”
如:
docker build -t ccpy .
对镜像进行运行测试
# 仅仅是本地运行的程序无需联网任务简单如此运行即可
docker run -d --name c_name imagename
# 如果需要联网则需要用 -p 指令将容器中的端口映射出来
docker run -it -p 80:80 --name c_name imagename
如果没问题则可以继续下一步
否则可以通过修改程序源文件代码修正后重新打包
拷贝运行正常的容器镜像文件
命令格式为: docker save ID > xxx.tar
docker load < xxx.tar
ID可以为自己指定的名字 也可以是docker自动分配的编码
保存容器
docker export ID >xxx.tar
docker import xxx.tar containr:v1
然后再docker run -it containr:v1 bash
最后在自己部署了docker环境的服务器上运行即可
将制作好的容器文件 ***.tar 拷贝到运行机上
docker load < ***.tar
之后运行即可