容器镜像制作

网友投稿 728 2022-05-30

随着容器技术的日益成熟,在云上,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小时内删除侵权内容。

上一篇:不插电的夜晚,让美好正在发生
下一篇:【精选单品】博赛云教育,综合性一站式培训平台,教育资源全覆盖
相关文章