可以参考 docker打包python项目成镜像文件,我也是参考的这个,因为一些命令我没跑通,所以自己写了这个笔记,不过里面大部分还是有用的。
文章目录
- 0. 前提准备
- 1. 编写Dockerfile
- 2. 构建镜像命令
- 3. 运行镜像
- 4. 进入容器内部
- 5. 保存镜像到本地
- 6. 导入镜像
- 7. 部署
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 -i /simple
CMD ["bash", "bin/"] # 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=(“http://0.0.0.0:8080/extract_plane/get_plane”, data=({“id”:“餐桌_MX435119651157913600”}))
5. 保存镜像到本地
有的资料上显示保存命令格式不一样,我自己机器上跑通的是下面这个:
sudo docker save 镜像的REPOSITORY:镜像的tag > 镜像文件名.tar
6. 导入镜像
docker load --input 镜像文件名.tar
7. 部署
命令和 3. 运行镜像 一样。