容器之镜像制作

举报
Alice215 发表于 2020/08/31 19:29:18 2020/08/31
【摘要】 随着容器技术的日益成熟,在云上,Docker+K8s的应用部署方式,越来越流行,用户可以使用Dockerfile打包自己的业务镜像,运行在云上,方便快捷地实现自己的业务场景。华为云的数据湖探索服务(简称DLI)提供的自定义镜像功能就很好的支持了这种场景。使用DLI提供的自定义镜像功能提交作业,用户可以依赖DLI提供的spark或者flink基础镜像,使用Dockerfile将作...

       随着容器技术的日益成熟,在云上,Docker+K8s的应用部署方式,越来越流行,用户可以使用Dockerfile打包自己的业务镜像,运行在云上,方便快捷地实现自己的业务场景。华为云的数据湖探索服务(简称DLI)提供的自定义镜像功能就很好的支持了这种场景。使用DLI提供的自定义镜像功能提交作业,用户可以依赖DLI提供的spark或者flink基础镜像,使用Dockerfile将作业运行需要的依赖(文件,jar包或者软件)打包到镜像中,生成自己的自定义镜像,然后在DLI服务作业编辑页选择自己生成的镜像,运行作业。下面展示了制作自定义镜像的步骤:


1. 获取DLI基础镜像

使用命令docker pull {swr仓库地址}/{组织名称}/{镜像名称}:{镜像版本},举例:docker pull swr.cn-north-1.huaweicloud.cn/dli/spark:2.3.2-1.0.0-openeuler-20.04-x86_64


镜像命名说明:

<swr-registry>/<org>/<compoent>:<component-ver>-<imagever>-<os>-<os-ver>-<arch>

说明:

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.cn/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.cn/dli/spark:2.3.2-1.0.0-openeuler-20.04-x86_64 -f Dockerfile .

   

3. 将自定义镜像上传到SWR服务

        有两种上传方式,客户端上传镜像参考https://support.huaweicloud.cn/intl/zh-cn/usermanual-swr/swr_01_0011.html,页面上传镜像参考https://support.huaweicloud.cn/intl/zh-cn/usermanual-swr/swr_01_0012.html


4. 在DLI服务的作业编辑页,自定义镜像列表选择已经上传的镜像,如果没有共享给DLI,则点击授权,其余配置填写正常后,即可运行作业


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。