Linux中國

使用 Podman 運行一個 「hello world」 MLCube

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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...
    Linux中國

    SSL/TLS 加密新紀元 – Lets Encrypt

    根據 Let's Encrypt 官方博客消息,Let's Encrypt 服務將在下周(11 月 16 日)正式對外開放。 Let's Encrypt 項目是由互聯網安全研究小組(ISRG,Internet Security Research Group)主導並開發的一個新型數字證書認證機構(CA,Certificate ...