Kedro Dockers使Kedro项目与Docker轻松打包
kedro-docker的Python项目详细描述
凯德罗码头
Docker是一个使创建、部署和运行应用程序更容易的工具。它使用容器将应用程序及其依赖项打包,然后在独立的虚拟化环境中运行应用程序。
配置Docker容器环境可能会变得复杂和乏味。Kedro Docker大大简化了这一过程,并将其简化为两个步骤:
- 创建Docker图像
- 在Docker环境中运行您的项目
注意:Kedro Docker还可以让您在Docker容器中轻松运行iPython和Jupyter笔记本。
如何安装Kedro Docker?
kedro docker是一个python插件。要安装它:
pip install kedro-docker
如何使用Kedro Docker?
先决条件
Kedro Docker必须满足以下条件才能打包您的项目:
- 确保已安装了docker
- Kedro Docker假设系统中的Docker守护进程已启动并运行
创建Docker图像
要为项目生成Docker映像,请导航到项目的根目录,然后从命令行运行以下命令:
kedro docker build
在幕后,Kedro执行以下操作:
- 在项目根目录中创建模板
dockerfile
和.dockerginore
如果这些文件不存在 - 使用项目根目录中的
dockerfile
生成项目映像
注意:调用kedro docker build
时,还可以通过指定--docker args
选项传递docker build
的任何特定选项。例如,kedro docker build--docker args="--no cache"
指示docker在生成映像时不要使用缓存。您可以在这里了解有关可用选项的更多信息。
默认情况下,项目docker映像将标记为:最新的,其中是项目根目录的名称。要更改标记,可以添加--image
命令行选项,例如:kedro docker build--image my project tag
在构建映像时,kedro会将当前项目的内容复制到映像中,但是它会忽略.dockerignore
文件中指定的位置,以防止潜在的把敏感数据输入图像。我们建议在运行时安装这些卷。
选项:
--uid
-容器内kedro用户的可选整数用户标识。默认为当前用户的uid--gid
-容器内kedro用户的可选整数组ID。默认为当前用户的gid--image
-可选的Docker图像标记。默认为项目目录名--docker args
-包含docker build
命令的额外选项的可选字符串-h,--help
-显示命令帮助退出。
在Docker环境中运行项目
建立项目映像后,可以使用Docker环境运行项目:
kedro docker run
上面的命令将:
- 找到上一节中生成的图像
- 将整个项目目录复制到
/home/kedro
容器路径中 - 在新容器中执行
kedro run
命令
注意:kedro docker run命令将--rm
标记添加到底层的docker run
调用中,因此容器退出时将自动删除。请确保在运行时将所有必需的数据保存在容器外部,以避免数据丢失。
默认情况下,kedro docker run将使用标记为"项目根目录:最新"的图像来创建容器。如果在上一步中重命名了图像,请提供带有相应图像标记的--image
选项,例如:kedro docker run--image"my custom image:latest"
调用kedro docker run
时,还可以通过提供--docker args
选项传递docker run
的任何特定选项。由于--docker args
可能包含多个参数,因此最好添加引号。例如,kedro docker run--docker args="--env key=myvalue"
指示docker在容器中将环境变量key
设置为myvalue
。您可以在这里了解有关可用选项的更多信息。
所有其他cli选项都将附加到容器中的kedro run
命令中。例如,kedro docker run--parallel
将在容器中运行kedro run--parallel
。
选项:
--image
-要使用的docker映像名,默认为项目根目录名--docker args
-包含docker run
命令的额外选项的可选字符串-h,--帮助
-显示命令帮助退出- 任何其他选项都将被视为
kedro run
命令选项
与Docker互动开发
除了kedro docker run之外,kedro还支持以下命令:
kedro docker ipython
-在容器内运行ipython会话Kedro Docker Jupyter笔记本
-在容器内启动Jupyter笔记本Kedro Docker Jupyter实验室
-在容器内启动Jupyter实验室
选项:
--image
-要使用的docker映像名,默认为项目根目录名--docker args
-包含docker run
命令的额外选项的可选字符串--端口
-容器端口将映射到的主机端口,默认为8888。此选项仅适用于kedro docker jupyter
命令-h,--帮助
-显示命令帮助退出- 任何其他选项都将被视为对应的
kedro
command cli选项。例如,kedro docker jupyter lab——笔记本app.token='--notebookapp.password='
将在没有密码和令牌的情况下运行jupyter lab服务器。
重要提示:请注意,默认情况下,项目的源代码目录(src
文件夹)不会装入docker容器。这意味着,如果在容器内的src
目录中更改任何代码,则这些更改将不保存到主机,并在容器终止时完全丢失。例如,要在运行jupyter实验室时装载整个项目,请运行以下命令:
kedro docker jupyter lab --docker-args "-v ${PWD}:/home/kedro"
使用Docker运行自定义命令
您也可以通过执行kedro docker cmd<;cmd>;
在docker容器中运行任意命令,其中<;cmd>;
对应于要执行的命令。如果未指定<;cmd>;
,则将在容器内执行kedro run
。
注意:如果您运行的是kedro
命令,与前面的部分不同,您应该指定整个命令,包括kedro
关键字。这也允许执行非kedro命令。
例如:
kedro docker cmd kedro test
将在容器内运行kedro test
kedro docker cmd
将在容器内运行kedro run
kedro docker cmd--docker args="-it"/bin/bash
将在容器中创建一个交互式的bash
外壳(并分配一个连接到容器stdin的伪tty)。
选项:
--image
-要使用的docker映像名,默认为项目根目录名--docker args
-包含docker run
命令的额外选项的可选字符串-h,--help
-显示命令帮助退出。
我能帮忙吗?
是的!想帮助建造凯德罗码头吗?查看我们的《贡献指南》你用什么执照?
Kedro Docker是在Apache2.0许可下获得许可的。