使用 Podman 运行一个 “hello world” MLCube
创始人
2024-03-02 10:56:54
0

MLCube 是一个新的基于基础设施规范的开源容器,被引入到基于 Python 的机器学习工作流程中,以实现可重复性。它可以利用诸如 PodmanSingularityDocker 等工具。也支持在远程平台上的执行。开发 MLCube 的 MLCommons 最佳实践工作组的主席之一是来自 Red Hat 的 Diane Feddema。这篇介绍性文章解释了如何在 Fedora Linux 上使用 Podman 运行 “hello world” MLCube 例子

Yazan Monshed 写了一篇关于 Fedora 上的 Podman 的非常有用的介绍,对这里使用的一些步骤给出了更多细节。

首先安装必要的依赖项。

sudo dnf -y update
sudo dnf -y install podman git virtualenv \
                    policycoreutils-python-utils

然后,按照文档的要求,设置一个虚拟环境并获得示例代码。为了确保可重复性,使用一个特定的提交,因为该项目正在积极改进。

virtualenv -p python3 ./env_mlcube 
source ./env_mlcube/bin/activate
git clone https://github.com/mlcommons/mlcube_examples.git 
cd ./mlcube_examples/hello_world
git checkout 5fe69bd
pip install mlcube mlcube-docker
mlcube describe

现在,通过编辑 $HOME/mlcube.yaml 文件,将运行器命令从 docker 改为 podman,即:

docker: docker

改为:

docker: podman

如果你使用的是 x86_64 架构的电脑,你可以用以下方式获取容器:

mlcube configure --mlcube=. --platform=docker

你会看到一些选项:

? Please select an image: 
  ▸ registry.fedoraproject.org/mlcommons/hello_world:0.0.1
    registry.access.redhat.com/mlcommons/hello_world:0.0.1
    docker.io/mlcommons/hello_world:0.0.1
    quay.io/mlcommons/hello_world:0.0.1

选择 docker.io/mlcommons/hello_world:0.0.1 来获取容器。

如果你的电脑不是 x86_64 架构的,你需要构建容器。改变文件 $HOME/mlcube.yaml,将这一行:

build_strategy: pull

变为:

build_strategy: auto

然后用以下方法构建容器:

mlcube configure --mlcube=. --platform=docker

要运行测试,你可能需要在目录中适当地设置 SELinux 权限。你可以通过输入以下内容来检查 SELinux 是否已经启用:

sudo sestatus

应该会有类似这样的输出:

SELinux status:                 enabled
...

Josphat MutaiChristopher SmartDaniel Walsh 解释说,在为容器使用的文件设置适当的 SELinux 策略时,你需要谨慎。在这里,你将允许容器读取和写入 workspace 目录。

sudo semanage fcontext -a -t container_file_t "$PWD/workspace(/.*)?"
sudo restorecon -Rv $PWD/workspace

现在检查目录策略:

ls -Z

输出结果类似于:

unconfined_u:object_r:user_home_t:s0 Dockerfile
unconfined_u:object_r:user_home_t:s0 README.md
unconfined_u:object_r:user_home_t:s0 mlcube.yaml
unconfined_u:object_r:user_home_t:s0 requirements.txt
unconfined_u:object_r:container_file_t:s0 workspace

现在运行这个例子:

mlcube run --mlcube=. --task=hello --platform=docker
mlcube run --mlcube=. --task=bye --platform=docker

最后,检查输出:

cat workspace/chats/chat_with_alice.txt

有类似于以下的文字:

Hi, Alice! Nice to meet you.
Bye, Alice! It was great talking to you.

你可以按照 这里 的描述创建你自己的 MLCube。欢迎对 MLCube 示例库 做出贡献。Udica 是一个新项目,它承诺为容器提供更精细的 SELinux 策略控制,便于系统管理员应用。这些项目的积极开发正在进行中。对它们进行测试并提供反馈,将有助于使带有 SELinux 的系统上的安全数据管理更容易、更有效。


via: https://fedoramagazine.org/mlcube-and-podman/

作者:Benson Muite 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

绑定根less的Podma...
要将根less的Podman容器绑定到公共IP地址,您可以使用以下...
2024-11-21 00:01:58
Red Hat宣布将生成式...
企业软件巨头Red Hat近日在年度用户大会Red Hat Sum...
2024-07-22 06:08:49
如何在 GitLab 执行...
使用 Podman 启动 GitLab 执行器有多种方法,我在本文...
2024-03-02 16:53:52
使用 Podman Des...
Podman Desktop 是一个开源 GUI 应用,用于在 L...
2024-03-02 12:40:16
使用 Podman 运行一...
MLCube 是一个新的基于基础设施规范的开源容器,被引入到基于 ...
2024-03-02 10:56:54
无需 sudo 使用 Po...
配置你的系统使用无根容器。容器是现代计算的一个重要组成部分,随着围...
2024-03-02 09:47:04

热门资讯

PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...