华为云Docker镜像服务器如何制作镜像,有哪些注意事项?

使用华为云docker镜像服务器制作Docker镜像,核心是通过华为云容器镜像服务SWR实现镜像的构建、托管与分发,整个流程包括编写Dockerfile、构建镜像、登录SWR、推送镜像及在云服务器上拉取运行。

为什么选择华为云docker镜像服务器

容器镜像管理是云原生基础设施的关键一环,行业共识认为,华为云SWR在稳定性与国内加速方面具备天然优势,相比自建Registry,SWR免去了运维负担,支持镜像安全扫描、权限精细控制,并与华为云CI/CD工具链无缝集成,你无需操心存储扩容或网络瓶颈,只要专注业务代码,尤其对于国内用户,华为云在全国多地域部署了镜像缓存节点,拉取速度明显优于海外公有registry,如果你正在为选哪家镜像仓库犹豫,不妨从华为云SWR入手,它免费额度足以覆盖中小团队日常需求。

SWR相比自建Registry的优势

免运维:存储、带宽、高可用由华为云负责,你只需使用API或控制台管理。
安全集成:支持镜像漏洞扫描,官方维护基础镜像安全基线。
高速分发:同地域内网拉取,延迟极低,配合华为云ECS使用效果更佳。
权限细粒度:可设置组织级、镜像级访问控制,适合团队协作。

适合什么场景

个人开发者快速部署个人项目,利用免费额度。
团队内部DevOps流水线,自动构建并推送。
生产环境中的微服务集群,需要稳定、低延迟的镜像分发。

华为云docker镜像仓库怎么用:准备工作

在开始制作镜像之前,你需要先完成环境配置和华为云侧的准备,这部分不复杂,但遗漏任何一步都会导致后续推送失败。

安装Docker环境

无论你使用本地机器还是华为云ECS,Docker是必须的,安装命令取决于操作系统:

  • Ubuntu/Debiansudo apt-get install docker.io,然后启动服务sudo systemctl start docker
  • CentOS/RHELsudo yum install docker-ce,安装后启动并设置开机自启。
  • Windows/Mac:直接安装Docker Desktop。

安装完成后,运行docker version确认客户端和服务端都正常,如果你在华为云ECS上操作,建议使用Ubuntu 20.04或更高版本,Docker支持更完善。

开通华为云容器镜像服务SWR

登录华为云控制台,在服务列表中找到“容器镜像服务SWR”,首次使用需要开通,根据引导完成授权即可,这个过程只需几分钟,不会产生费用(免费额度覆盖初期使用)。

创建组织(Organization)

SWR中镜像以“组织/镜像名:标签”的形式存储,组织相当于命名空间,用于隔离不同项目或团队,你可以在控制台左侧“组织管理”中创建一个组织,my-project`,记住这个组织名,后续推送时要用。

获取访问凭证

推送镜像需要身份认证,华为云采用临时登录指令,有效期24小时,你可以在控制台SWR概览页点击“登录指令”,并复制生成的`docker login`命令,也可通过CLI方式获取,但最直接的是在控制台操作。

华为云制作Docker镜像的详细步骤

现在进入核心环节:构建一个可运行的Docker镜像,并打上标签。

编写Dockerfile

假设你有一个简单的Python Flask应用,目录结构如下:

app/
├── app.py
└── requirements.txt

app.py内容(示例):

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return "Hello, Huawei Cloud SWR!"
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080)

requirements.txt

flask

在同目录下创建Dockerfile

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
EXPOSE 8080
CMD ["python", "app.py"]

这个Dockerfile很基础,适合入门,生产环境建议使用更精简的基础镜像,并加入健康检查等指令。

构建镜像

在`app`目录下执行:
“`bash
docker build -t my-flask-app:latest .
“`
`-t`指定镜像名称和标签,这里用`my-flask-app:latest`,构建完成后,运行`docker images`确认镜像已生成。

镜像打标签(Tag)

推送前需要将镜像重命名为SWR仓库地址格式:`swr.{地域}.myhuaweicloud.com/{组织名}/{镜像名}:{标签}`。

你选择的地域是cn-north-4(北京四),组织名my-project,那么命令为:

docker tag my-flask-app:latest swr.cn-north-4.myhuaweicloud.com/my-project/my-flask-app:latest

标签可以自定义,但建议使用语义化版本,如v1.0.0

推送镜像到华为云镜像仓库

镜像打好标签后,推送到SWR仓库。

登录SWR

使用之前从控制台复制的`docker login`命令。
“`bash
docker login swr.cn-north-4.myhuaweicloud.com -u cn-north-4@xxx -p xxxxxx
“`
登录成功后会提示`Login Succeeded`,注意登录指令有效期24小时,过期后需重新获取。

执行推送

“`bash
docker push swr.cn-north-4.myhuaweicloud.com/my-project/my-flask-app:latest
“`
推送过程会显示分层上传进度,如果网络稳定,几秒到几分钟即可完成,推送完成后,在控制台“镜像管理”中可以看到该镜像。

常见推送失败原因及解决

认证过期:重新获取登录指令并登录。
组织不存在:在控制台创建组织,或检查组织名是否拼写正确。
镜像标签格式错误:确保仓库地址前缀正确,包括地域、组织名。
网络超时:建议使用华为云ECS进行推送,走内网更快。

在华为云服务器上拉取镜像并运行容器

镜像推送到SWR后,你就可以在任何一台有Docker环境的机器上拉取运行,如果使用华为云ECS,同地域内网拉取速度极快。

登录目标ECS,安装Docker(参考前文),然后执行:

docker login swr.cn-north-4.myhuaweicloud.com -u cn-north-4@xxx -p xxx
docker pull swr.cn-north-4.myhuaweicloud.com/my-project/my-flask-app:latest
docker run -d -p 8080:8080 swr.cn-north-4.myhuaweicloud.com/my-project/my-flask-app:latest

访问https://<ECS公网IP>:8080,即可看到应用响应,整个过程无需手动搬运镜像,十分便捷。

华为云镜像仓库价格与地域选择

了解费用和地域差异,有助于做出更合理的决策。

费用构成

华为云SWR提供免费额度,包括一定量的存储空间和公网流量,超出部分按实际使用计费,具体如下(根据华为云官网公开信息,金额随政策调整,以下为模糊描述):

  • 存储费用:按镜像占用存储空间计费,免费额度之外每GB单价较低(约每月几毛钱)。
  • 流量费用:公网下行流量按GB计费,同地域内网访问免流量。
  • 请求次数:API调用次数在免费额度内免费,超出后按万次计费。

对于个人开发者或小型团队,免费额度通常足够使用数月,如果你对价格敏感,可以关注华为云定期推出的资源包,进一步降低成本。

如何选择地域

地域选择直接影响镜像拉取速度,基本原则:
你的ECS或K8s集群部署在哪个地域,SWR就选择同地域,这样内网传输免流量且极快。
如果团队分布在不同地域,建议在主要数据中心所在地域创建仓库,其他地域通过SWR的跨区域复制功能同步镜像。
国内用户常用地域:北京四(华北)、上海一(华东)、广州(华南)等,海外用户可选择新加坡、曼谷等。

据华为云官网文档,每个地域的镜像仓库域名格式为swr.{region}.myhuaweicloud.com,你可以在控制台快速获取。

华为云docker镜像服务器常见问题解答

Q:华为云docker镜像仓库怎么用?我完全新手,该从哪开始?

A:先注册华为云账号,开通SWR服务,然后在本地或ECS上安装Docker,在控制台创建一个组织,获取登录指令,最后用`docker build`构建镜像,`docker tag`打标签,`docker push`推送,整个过程可参考本文“准备工作”“制作Docker镜像”“推送镜像”三节,SWR控制台有交互式引导,跟着操作即可。

Q:推送镜像时提示“denied: unauthorized”,怎么解决?

A:这通常是因为登录指令过期或认证信息错误,重新在SWR控制台获取新的登录指令,并执行`docker login`,注意,登录指令中的用户名和密码是临时生成的,请勿手动修改,如果使用长期有效的AK/SK方式,请确保配置正确,检查组织名称是否与登录时使用的租户名匹配。

Q:华为云镜像仓库价格如何?免费额度够用吗?

A:华为云SWR提供一定量的免费存储和公网流量,对于个人开发者或日均构建次数不多的项目,免费额度基本够用,超出部分按存储容量和流量计费,价格较低,具体免费额度数值,请以华为云官网最新公告为准,建议在控制台“资源包”页面查看当前优惠,或购买存储包进一步降低成本。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/536355.html

(0)
酷盾叔的头像酷盾叔
上一篇 2026年8月17日 09:15
下一篇 2026年8月17日 09:34

相关推荐

  • 在众多域名投资中,究竟哪个类型或后缀的域名最具长期投资价值?

    域名投资,作为互联网时代的一种新型投资方式,越来越受到投资者的关注,面对众多域名,如何选择最有价值的域名进行投资,成为了许多投资者关注的焦点,本文将从专业、权威、可信和体验四个方面,为您详细分析哪些域名最有价值,专业分析域名类型在域名投资中,不同类型的域名具有不同的价值,以下是对几种常见域名类型的分析:(1……

    2026年4月22日
    800
  • 市面上众多域名排查软件,究竟哪款表现更优,值得信赖?

    在互联网时代,域名已经成为企业或个人在网络上展示自己的重要标志,一个合适的域名不仅能够提升品牌形象,还能吸引更多用户,在域名注册过程中,难免会遇到一些问题,如域名被占用、域名过期等,为了解决这些问题,市面上出现了各种域名排查软件,哪个域名排查软件比较好呢?本文将从以下几个方面进行分析,域名排查软件的功能对比域名……

    2026年2月22日
    800
  • 微信链接打不开?背后原因有哪些?解决方法是什么?

    在使用微信的过程中,有时会遇到链接无法打开的情况,这种情况可能会让人感到困惑,以下是可能导致微信上链接打不开的几个原因:原因描述网络问题微信链接无法打开最常见的原因之一是网络问题,如果您的网络连接不稳定或中断,链接将无法正常加载,链接本身问题链接可能存在损坏、过时或不存在的问题,在这种情况下,无论网络是否正常……

    2025年10月29日
    31600
  • 教育机构专属?edu顶级域名属性揭秘!

    在互联网的世界里,域名是标识网站的唯一标识符,域名由两部分组成:顶级域名(TLD)和二级域名,顶级域名是域名结构中最右侧的部分,通常由一串字母组成,有些顶级域名具有特定的属性和用途,本文将详细介绍Edu顶级域名,探讨其属性和用途,Edu顶级域名的定义Edu顶级域名(.edu)是专门为教育机构设计的顶级域名,它主……

    2026年3月16日
    2300
  • 如何挑选性价比高的域名服务器?性价比高的域名服务器推荐?

    在选择域名服务器时,价格和性能是用户最关心的两个因素,哪个域名服务器既便宜又好用呢?本文将为您详细介绍,帮助您找到最适合的域名服务器,域名服务器价格对比以下是一些常见的域名服务器及其价格对比:域名服务器价格(元/年)优势阿里云DNS01元/天性价比高,支持智能解析腾讯云DNS05元/天支持智能解析,稳定性高网宿……

    2026年2月24日
    1100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN