栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

简单的Mac版Docker封装需要传参的Python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单的Mac版Docker封装需要传参的Python

被Docker折磨了好久,现在记录一下。用Mac做先按着教程下一个桌面版的MacOS Docker 安装,每次操作的时候必须启动才可以,要不就报没连接的错误。

Docker_Python_传参
  • 文件目录
  • Dockerfile
  • requirements.txt
  • 代码文件夹
  • Docker命令行
    • 装载建包
    • 运行一下
    • 导出
    • 导入

文件目录

目录如下图设置,在demo文件夹下,有两个文件和一个文件夹,Dockerfile就是指我们生成Docker时的设置文件,requirements.txt是指python环境下所需要的包,src文件夹是指代码,来一个一个看。

Dockerfile

Dockerfile 文件这么写,具体参数看这Docker Dockerfile

# 就是大环境
FROM python:3.9
# 工作目录
WORKDIR ./docker_predict_S
# 从本来的路径拷贝到容器指定路径,这么写最省事 
ADD . .
# 运行下加载环境的
RUN pip install -r requirements.txt
# 环境变量,就相当于我们可以传参的参数
ENV SS=''
# 这个就是完成后执行命令行
ENTRYPOINT python ./src/pp.py --string $SS
requirements.txt

这里放一些加载包,加不加后面的版本号都行

certifi==2022.5.18.1
pandas==1.4.2

用下面这一行就可以导出环境依赖

pip freeze > requirements.txt 
代码文件夹

在里面可以写自己的文件,也可以调用资源,但是路径得变成./src/... 就好了,我的运行文件pp.py这样写。

import argparse

parser = argparse.ArgumentParser(description='manual to this script')
parser.add_argument('--string', type=str, default='123123')
args = parser.parse_args()


if __name__ == '__main__':
    print(args.string)
Docker命令行

好了,重头戏来了,先cd 到文件夹内部,当然需要把Docker这个程序运行起来。
现在执行docker images是什么都没有的。

装载建包
sudo docker build -t demo:v1 .

demo:v1是名字和版本,想弄啥弄,后面还有个 . 要注意,命令行截图如下。

经历了漫长的等待,docker images 也有镜像出现,OK了。

运行一下

因为是EVN的参数,所以要写在前面,用-e的方式,一般传个端口号什么的,方便。

sudo docker run -e SS='22' demo:v1

运行截图

导出

先把刚运行的容器关闭下,全关了镜像状态就是不用了,再导出。

导出的命令

 docker save -o demo.tar demo:v1

文件夹就有了

我们再把docker里之前的镜像删掉,用这个导入的来看看。

docker rmi 镜像id

截图如下

导入
docker load -i demo.tar

加载检查有了

运行下,有结果了,就酱。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977447.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号