活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      容器镜像服务

      容器镜像服务

        • 产品动态
        • 产品简介
        • 产品定义
        • 产品优势
        • 功能特性
        • 应用场景
        • 使用限制
        • 相关术语解释
        • 与其他服务的关系
        • 计费说明
        • 计费模式
        • 快速入门
        • 容器客户端上传镜像
        • 用户指南
        • 容器引擎基础知识
        • 组织管理
        • 镜像管理
        • 客户端上传镜像
        • 获取长期有效docker login指令
        • 页面上传镜像
        • 下载镜像
        • 编辑镜像属性
        • 共享私有镜像
        • 添加触发器
        • 添加镜像老化规则
        • 授权管理
        • 审计
        • 支持云审计的关键操作
        • 查看云审计日志
        • 常见问题
        • 通用类
        • 镜像管理类
        • 故障类
        • 文档下载
        • 最佳实践
        • 最佳实践
        • 相关产品协议
        • 天翼云云容器镜像服务协议
          无相关产品

          本页目录

          帮助中心容器镜像服务常见问题镜像管理类
          镜像管理类
          更新时间 2024-01-05 16:58:44
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2024-01-05 16:58:44
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本文主要介绍 镜像管理类问题

          如何安装容器引擎?

          容器引擎几乎支持在所有操作系统上安装,用户可以根据需要选择要安装的容器引擎版本。

          说明
          • 容器镜像服务支持使用容器引擎1.11.2 及以上版本上传镜像。

          • 安装容器引擎需要连接互联网,内网服务器需要绑定弹性IP后才能访问。

          另外,在Linux 操作系统下,可以使用如下命令快速安装容器引擎。

          curl -fsSL get.docker.com -o get-docker.sh

          sh get-docker.sh

          如何制作容器镜像?

          自行制作容器镜像,主要有两种方法:

          • 制作快照方式获得镜像(偶尔制作的镜像):在基础镜像上(比如Ubuntu),先登录镜像系统并安装容器引擎软件,然后整体制作快照。
          • Dockerfile方式构建镜像(经常更新的镜像):将软件安装的流程写成Dockerfile,使用docker build构建成容器镜像。

          方法一:制作快照方式获得镜像

          如果后续镜像没有变化,可采用方法一制作镜像。

          图片8.png

          具体操作如下:

          • 找一台主机,安装容器引擎软件。
          • 启动一个空白的基础容器,并进入容器。

          例如:启动一个CentOS的容器。

          docker run -it centos

          • 执行安装任务。

          yum install XXX

          git clone https://github.com/lh3/bwa.git

          cd bwa;make

          说明
          请预先安装好Git,并检查本机是否有ssh key设置。
          • 输入exit退出容器。
          • 制作快照。

          docker commit -m "xx" -a "test" container-id test/image:tag

          -a:提交的镜像作者。

          container-id:步骤2中的容器id。可以使用docker ps -a查询得到容器id。

          -m:提交时的说明文字。

          test/image:tag:仓库名/镜像名:TAG名。

          • 执行docker images可以查看到制作完成的容器镜像。

          方法二:使用Dockerfile方式构建

          如果后续镜像经常变更(例如某个软件更新版本),则需要采用方法二制作镜像。若仍采用方法一制作镜像,则每次变更都需要重新执行方法一的命令,操作过程比较繁琐,所以建议使用自动化制作镜像的方法。

          其实就是将方法一制作镜像的方法,用文件方式写出来(文件名为Dockerfile)。然后执行: docker build -t test/image:tag. 命令(命令中“.”表示Dockerfile文件的路径),自动完成镜像制作。

          图片8.png

          简单的Dockerfile示例:

          说明
          如果依赖外部网络,请搭建网络环境,并保证网络可用。
          #Version 1.0.1 
          FROM centos:latest 
           
          #设置root用户为后续命令的执行者 
          USER root 
           
          #执行操作 
          RUN yum update -y 
          RUN yum install -y java 
           
          #使用&&拼接命令 
          RUN touch test.txt && echo "abc" >>abc.txt 
           
          #对外暴露端口 
          EXPOSE 80 8080 1038 
           
          #添加网络文件 
          ADD https://www.baidu.com/img/bd_logo1.png /opt/ 
           
          #设置环境变量 
          ENV WEBAPP_PORT=9090 
           
          #设置工作目录 
          WORKDIR /opt/ 
           
          #设置启动命令 
          ENTRYPOINT ["ls"] 
           
          #设置启动参数 
          CMD ["-a", "-l"] 
           
          #设置卷 
          VOLUME ["/data", "/var/www"] 
           
          #设置子镜像的触发操作 
          ONBUILD ADD . /app/src 
          ONBUILD RUN echo "on build excuted" >> onbuild.txt
          

          Dockerfile基本语法

          • FROM:

          指定待扩展的父级镜像(基础镜像)。除注释之外,文件开头必须是一个FROM指令,后面的指令便在这个父级镜像的环境中运行,直到遇到下一个FROM指令。通过添加多个FROM命令,可以在同一个Dockerfile文件中创建多个镜像。

          • MAINTAINER:

          声明创建镜像的作者信息:用户名、邮箱,非必须参数。

          • RUN:

          修改镜像的命令,常用来安装库、安装程序以及配置程序。一条RUN指令执行完毕后,会在当前镜像上创建一个新的镜像层,接下来的指令会在新的镜像上继续执行。RUN 语句有两种形式:

          RUN yum update :在**/bin/sh**路径中执行的指令。

          RUN ["yum", "update"] :直接使用系统调用exec来执行。

          RUN yum update && yum install nginx :使用&&符号将多条命令连接在同一条RUN语句中。

          • EXPOSE:

          指明容器内进程对外开放的端口,多个端口之间使用空格隔开。

          运行容器时,通过设置参数 -P (大写)即可将EXPOSE里所指定的端口映射到主机上其他的随机端口,其他容器或主机可以通过映射后的端口与此容器通信。

          您也可以通过设置参数 -p (小写)将Dockerfile中EXPOSE中没有列出的端口设置成公开。

          • ADD:

          向新镜像中添加文件,这个文件可以是一个主机文件,也可以是一个网络文件,也可以是一个文件夹。

          第一个参数:源文件(夹)。

          如果是相对路径,必须是相对于Dockerfile所在目录的相对路径。

          如果是URL,会将文件先下载下来,然后再添加到镜像里。

          第二个参数:目标路径。

          如果源文件是主机上的zip或者tar形式的压缩文件,容器引擎会先解压缩,然后将文件添加到镜像的指定位置。

          n 如果源文件是一个通过URL指定的网络压缩文件,则不会解压。

          • VOLUME:

          在镜像里创建一个指定路径(文件或文件夹)的挂载点,这个容器可以来自主机或者其它容器。多个容器可以通过同一个挂载点共享数据,即便其中一个容器已经停止,挂载点也仍可以访问。

          • WORKDIR:

          为接下来执行的指令指定一个新的工作目录,这个目录可以是绝对目录,也可以是相对目录。根据需要,WORKDIR可以被多次指定。当启动一个容器时,最后一条WORKDIR指令所指的目录将作为容器运行的当前工作目录。

          • ENV:

          设置容器运行的环境变量。在运行容器的时候,通过设置**-e**参数可以修改这个环境变量值,也可以添加新的环境变量。

          例如:

          docker run -e WEBAPP_PORT=8000 -e WEBAPP_HOST=www.example.com ...

          • CMD:

          用来设置启动容器时默认运行的命令。

          • ENTRYPOINT:

          用来指定容器启动时的默认运行的命令。区别在于:运行容器时添加在镜像之后的参数,对ENTRYPOINT是拼接,CMD是覆盖。

          若在Dockerfile中指定了容器启动时的默认运行命令为 ls -l ,则运行容器时默认启动命令为 ls -l ,例如:

          ENTRYPOINT [ "ls", "-l"] :指定容器启动时的程序及参数为 ls -l 。

          docker run centos :当运行centos容器时,默认执行的命令是docker run centos ls -l

          docker run centos -a :当运行centos容器时拼接了-a参数,则默认运行的命令是docker run centos ls -l -a

          若在Dockerfile中指定了容器启动时的默认运行命令为 --entrypoint ,则在运行容器时如果需要替换默认运行命令,可以通过添加**--entrypoint**参数来替换Dockerfile中的指定。例如:

          docker run gutianlangyu/test --entrypoint echo "hello world"

          • USER:

          为容器的运行及RUN、CMD、ENTRYPOINT等指令的运行指定用户或UID。

          • ONBUILD:

          触发器指令。构建镜像时,容器引擎的镜像构建器会将所有的ONBUILD指令指定的命令保存到镜像的元数据中,这些命令在当前镜像的构建过程中并不会执行。只有新的镜像使用FROM指令指定父镜像为当前镜像时,才会触发执行。

          使用FROM以这个Dockerfile构建出的镜像为父镜像,构建子镜像时:

          ONBUILD ADD . /app/src :自动执行ADD . /app/src

          如何制作镜像压缩包?

          使用docker save命令可将容器镜像制作成tar或tar.gz文件压缩包,具体命令格式如下:

          docker save [OPTIONS] IMAGE [IMAGE...]

          OPTIONS说明:--output、-o,表示导出到文件。

          示例:

          $ docker save nginx:latest > nginx.tar 
          $ ls -sh nginx.tar 
          108M nginx.tar 
           
          $ docker save php:5-apache > php.tar.gz 
          $ ls -sh php.tar.gz 
          372M php.tar.gz 
           
          $ docker save --output nginx.tar nginx 
          $ ls -sh nginx.tar 
          108M nginx.tar 
           
          $ docker save -o nginx-all.tar nginx 
          $ docker save -o nginx-latest.tar nginx:latest
          

          docker push使用什么协议将镜像推动到SWR?

          HTTPS协议。

          同名称同tag的镜像上传后会覆盖之前的镜像吗?

          会覆盖,保留最新上传的镜像。

          SWR单个layer的最大限制是多少?

          使用客户端向SWR上传镜像,镜像的每个layer大小不能超过10G。

          为什么通过客户端上传和页面上传的镜像大小不一样?

          问题描述

          假设在本地Docker客户端上制作了一个nginx镜像,版本号为v2.0.0,使用docker images命令查询SIZE为 22.8MB :

          $ docker images
          REPOSITORY                         TAG             IMAGE ID       CREATED         SIZE
          nginx                              v2.0.0          22f2bf2e2b4f   9 days ago      22.8MB
          
          • 通过客户端(即执行docker push命令)上传该镜像至SWR镜像仓库,查询大小为 9.5MB 。

          图片10.png

          • 在本地Docker客户端将镜像打包为tar格式,将nginx.tar下载至本地后,通过页面方式上传至SWR镜像仓库,查询大小为 23.2MB 。

          图片11.png

          可以发现,通过客户端和页面上传的镜像大小不一样。

          原因分析

          使用客户端上传的镜像每一层layer都进行了tgz压缩,而页面上传的镜像包是经过docker打包的,每一层layer只进行了打包,没有压缩。所以两种方式上传的镜像大小显示会不一致。

          是否支持跨区域同步镜像?

          目前不支持跨区域同步镜像。

          如果您想把最新推送的镜像同步到其他区域镜像仓库内,您可以先将镜像下载到本地,然后上传到需要同步区域的镜像仓库中。

          SWR支持ARM镜像上传吗?

          SWR镜像仓库对镜像的内核架构是没有任何限制的,您上传ARM架构的镜像和上传x86的镜像是没有区别的,直接上传即可。

          如何通过API上传镜像到SWR?

          SWR暂时没有开放镜像上传的API,您可以使用docker push或页面方式上传镜像。

          如何通过API下载镜像?

          SWR暂不支持通过API下载镜像。如果要下载镜像,请通过docker pull命令来进行下载操作。

          docker pull下载的镜像存放在什么地方?

          docker pull将镜像下载到本地节点上,您可以通过docker save命令将镜像保存成tar归档文件。

          是否支持跨区域下载镜像?

          支持。

          SWR当前支持跨区域公网下载,请确保下载机可访问公网且获取正确的仓库登录指令。例如:您想下载“广州4”区域的镜像,则需要获取“广州4”区域的镜像仓库登录指令。

          控制台页面的镜像可以下载到本地吗?

          控制台页面的镜像不能直接下载至本地,您可以参考以下方法操作:

          • 在镜像详情页获取镜像的下载指令。
          • 在安装了Docker客户端的机器上执行上一步的指令下载镜像。

          示例:

          docker pull registry.cn-jssz 1 .ctyun .cn ** /group/nginx:v1**

          • 将镜像保存为.tar或.tar.gz格式的文件。

          示例:

          docker save nginx:v1 > nginx.tar

          下载文件至本地。

          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  通用类
          下一篇 :  故障类
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明