在 docker 中部署 python 工程

安装 docker

已经按照:docker 命令 教程,安装完成 docker,并创建了包含完整 requirement 的镜像:py_container_1

工程上传

首先将本地(线上)工程目录 zip 压缩,并上传到 linux 实体机,后解压缩,进入到工程目录:cd /home/q/www/python_project_1

Dockerfile 文件创建

在同级目录下创建 Dockerfile 文件(无扩展名): Dockerfile 的指令详解参考:http://www.ityouknow.com/docker/2018/03/15/docker-dockerfile-command-introduction.html

# 基于镜像基础
FROM py_container_1:3.6

# 设置代码文件夹工作目录
WORKDIR /home/q/www/python_project_1

# 复制当前代码文件(. 是指当前文件夹下的所有文件包括目录等)到容器指定目录中
ADD . /home/q/www/python_project_1

# Run servers.py when the container launches,这里的 servers.py 是工程的启动代码
CMD ["python", "servers.py"]
  • 其中 FROM 是指从哪个镜像创建(这里用的是已经安装好 requirement 的镜像,因此不需要增加 RUN pip install -r requirements.txt 的指令了)
  • WORKDIR 用于在容器内设置一个工作目录:设置后,Dockerfile 中其后的命令 RUN、CMD、ENTRYPOINT、ADD、COPY 等命令都会在该目录下执行。
  • COPY <源路径>... <目标路径>,COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的<目标路径>位置,例子:COPY package.json /usr/src/app/
  • ADD <源路径>... <目标路径>:COPY 和 ADD 的用法一样,ADD 基础上增加了一些功能。比如 <源路径> 可以是一个 URL
  • CMD 与 RUN 指令的区别:RUN 在构建的时候执行,并生成一个新的镜像,CMD 在容器运行的时候执行,在构建时不进行任何操作:CMD ["executable","param1","param2"]
创建工程的镜像

然后执行:sudo docker build -t python_project_1 . (python_project_1 为创建的镜像名称,后面有个 . 表示当前目录)

创建工程的容器

然后执行:sudo docker run -it -p 1234:9002 --name project_test python_project_1,运行镜像,生成并启动一个叫 project_test 的容器,启动时的日志,和发布线上时的日志是一样的

在这里插入图片描述

调用

POST 请求时,使用的是 Linux 机器的 ip 或名字(也就是截图里的 2345 ),然后 +加上 Linux 的实际端口号(不是容器的端口号)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值