容器之鏡像制作
隨著容器技術的日益成熟,在云上,Docker+K8s的應用部署方式,越來越流行,用戶可以使用Dockerfile打包自己的業務鏡像,運行在云上,方便快捷地實現自己的業務場景。華為云的數據湖探索服務(簡稱DLI)提供的自定義鏡像功能就很好的支持了這種場景。使用DLI提供的自定義鏡像功能提交作業,用戶可以依賴DLI提供的spark或者flink基礎鏡像,使用Dockerfile將作業運行需要的依賴(文件,jar包或者軟件)打包到鏡像中,生成自己的自定義鏡像,然后在DLI服務作業編輯頁選擇自己生成的鏡像,運行作業。下面展示了制作自定義鏡像的步驟:
1. 獲取DLI基礎鏡像
使用命令docker pull {swr倉庫地址}/{組織名稱}/{鏡像名稱}:{鏡像版本},舉例:docker pull swr.cn-north-1.huaweicloud.com/dli/spark:2.3.2-1.0.0-openeuler-20.04-x86_64
鏡像命名說明:
說明:
swr-registry為對應局點的swr倉庫地址
org為組織名 默認為dli
compoent組件名為spark或者flink
component-ver組件版本,spark為2.3.x,2.4.x, flink為1.10.x
imagever:1.0.0,遞增
os:openeuler
os-ver: os版本
arch: x86_64或aarch64
2. 利用dockerfile生成自定義鏡像
示例展示了如何將tensorflow打包進鏡像,生成安裝了tensorflow的自定義鏡像,主要分為三步:首先設置pip的可用倉庫地址,然后使用pip3安裝tensorflow算法包,最后將安裝了算法包的臨時鏡像builder里的內容拷貝到基礎鏡像(這一步主要是為了減小鏡像體積),Dockerfile編輯完成之后,通過docker build命令生成最終的自定義鏡像,具體的Dockerfile內容示例如下:
ARG BASE_IMG=spark:latest
FROM ${BASE_IMG} as builder
USER root
RUN set -ex && \
mkdir -p /root/.pip && \
echo "[global]" >> /root/.pip/pip.conf && \
echo "index-url = https://mirrors.huaweicloud.com/repository/pypi/simple" >> /root/.pip/pip.conf && \
pip3 install --user --no-cache-dir tensorflow==1.13.1
FROM ${BASE_IMG}
USER root
COPY --from=builder --chown=omm:ficommon /root/.local /home/omm/.local
USER omm
打鏡像命令 docker build -t mydli/spark:1.0 --build-arg BASE_IMG=swr.cn-north-1.huaweicloud.com/dli/spark:2.3.2-1.0.0-openeuler-20.04-x86_64 -f Dockerfile .
3. 將自定義鏡像上傳到SWR服務
有兩種上傳方式,客戶端上傳鏡像參考https://support.huaweicloud.com/intl/zh-cn/usermanual-swr/swr_01_0011.html,頁面上傳鏡像參考https://support.huaweicloud.com/intl/zh-cn/usermanual-swr/swr_01_0012.html
4. 在DLI服務的作業編輯頁,自定義鏡像列表選擇已經上傳的鏡像,如果沒有共享給DLI,則點擊授權,其余配置填寫正常后,即可運行作業
EI企業智能 智能數據 AI 容器 數據湖探索 DLI
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。