python | 用docker部署python服务:把代码打包成镜像,迁移到新环境中部署服务

可以参考 docker打包python项目成镜像文件,我也是参考的这个,因为一些命令我没跑通,所以自己写了这个笔记,不过里面大部分还是有用的。


0. 前提准备

要保证代码服务在本地至少是跑得通的,再打包。



1. 编写Dockerfile

FROM python:3.7    # python的镜像

RUN apt update -y  # 如果有需要,运行一些命令;注意:这些命令是在docker容器内部的命令
RUn apt upgrade -y
RUN apt install libgl1 -y

WORKDIR ./      # 我设置的是当前目录,解释可以参考本网页开头的参考资料
 
ADD . .        # 解释可以参考本网页开头的参考资料

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

CMD ["bash", "bin/run.sh"]   # docker容器内启动python服务的命令

我遇到的问题:docker中apt-get失败



2. 构建镜像命令

需要说明的是:构建完镜像后,需要用 docker images才能看到,而不是自动保存到本地的一个文件。

sudo docker build -t 镜像的REPOSITORY:镜像的tag .  #最后面还有个点


3. 运行镜像

本地执行这一步,然后测试服务,相当于本地测试镜像打包的是否对;
把镜像拷贝到目标机器,然后执行这一步,相当于在目标服务器部署服务了。
运行完镜像,可以调用一下服务试试。

sudo docker run -p 8081:8080 image_id   # -p参数表示 宿主机IP:docker容器内部的ip,很管用的参数,防止宿主机port重复


4. 进入容器内部

这个其实更多是如果有异常可以进去debug,比如试试安装包能安上不;

docker exec -it container_id /bin/bash

res=requests.post(“http://0.0.0.0:8080/extract_plane/get_plane”, data=json.dumps({“id”:“餐桌_MX435119651157913600”}))



5. 保存镜像到本地

有的资料上显示保存命令格式不一样,我自己机器上跑通的是下面这个:

sudo docker save 镜像的REPOSITORY:镜像的tag > 镜像文件名.tar


6. 导入镜像

docker load --input 镜像文件名.tar


7. 部署

命令和 3. 运行镜像 一样。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值