云服务器内容精选
-
操作步骤 参考获取docker容器引擎的长期有效登录指令中的步骤1设置编程访问权限。 参考获取docker容器引擎的长期有效登录指令中的步骤2至步骤4获取资源空间名、镜像仓库地址、AK以及登录密钥信息。 使用如下的格式拼接长期拉取和推送镜像的指令。 1. 镜像拉取指令拼接 ctr image pull --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址] 其中,资源空间名和镜像仓库地址在2中获取,AK在3中获取,登录密钥为4的执行结果。 2. 镜像推送指令拼接 ctr image push --user [资源空间名]@[AK]:[登录密钥] [镜像仓库地址] 其中,资源空间名和镜像仓库地址在2中获取,AK在3中获取,登录密钥为4的执行结果。 登录密钥字符串是经过加密的,无法将登录密钥字符串逆向解密成SK。 获取的指令可在其他机器上使用并进行镜像上传下载。
-
docker容器引擎客户端 制作容器镜像或导入镜像文件。 连接 容器镜像服务 。 登录容器 镜像服务 控制台。 选择左侧导航栏的“总览”,单击页面右上角的“登录指令”,在弹出的页面中单击复制登录指令。 图1 登录指令 此处生成的登录指令有效期为6小时,若需要长期有效的登录指令,请参见获取长期有效登录指令。获取了长期有效的登录指令后,在有效期内的临时登录指令仍然可以使用。 登录指令末尾的 域名 为镜像仓库地址,请记录该地址,后面会使用到。 在安装容器引擎的机器中执行上一步复制的登录指令。 登录成功会显示“Login Succeeded”。 在安装容器引擎的机器上执行如下命令,为nginx镜像打标签。 docker tag [镜像名称1:版本名称1] [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2] 其中, [镜像名称1:版本名称1]:请替换为您所要上传的实际镜像的名称和版本名称。 [镜像仓库地址]:可在SWR控制台上查询,即2.b中登录指令末尾的域名。 [组织名称]:请替换为您创建的组织。 [镜像名称2:版本名称2]:请替换为您期待的镜像名称和镜像版本。 示例: docker tag nginx:v1 swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1 上传镜像至镜像仓库。 docker push [镜像仓库地址]/[组织名称]/[镜像名称2:版本名称2] 示例: docker push swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1 终端显示如下信息,表明上传镜像成功。 The push refers to repository [swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1] fbce26647e70: Pushed fb04ab8effa8: Pushed 8f736d52032f: Pushed 009f1d338b57: Pushed 678bbd796838: Pushed d1279c519351: Pushed f68ef921efae: Pushed v1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780 返回容器镜像服务控制台,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。
-
操作场景 客户端上传镜像,是指在安装了容器引擎客户端的机器上使用docker命令或者ctr命令将镜像上传到容器镜像服务的镜像仓库。如果是docker容器引擎客户端则使用docker push命令上传。如果是containerd容器引擎客户端则使用ctr push命令上传。 如果容器引擎客户端机器为云上的E CS 或CCE节点,根据机器所在区域有两种网络链路可以选择: 若机器与容器镜像仓库在同一区域,则上传镜像走内网链路。 若机器与容器镜像仓库不在同一区域,则上传镜像走公网链路,机器需要绑定弹性公网IP。
-
安装容器引擎 您可以根据自己的操作系统选择对应的安装步骤: Linux操作系统下安装 EulerOS操作系统下安装 Linux操作系统下安装 在Linux操作系统下,可以使用如下命令快速安装Docker的最新稳定版本。如果您想安装其他特定版本的Docker,可参考安装Docker。 curl -fsSL get.docker.com -o get-docker.sh sh get-docker.sh sudo systemctl daemon-reload sudo systemctl restart docker EulerOS操作系统下安装 在EulerOS操作系统下,安装容器引擎的方法如下: 登录弹性云服务器。 配置yum源。 如果您的机器上还没有配置yum源,可以参照如下方法配置:如何使用自动化工具配置华为云镜像源(x86_64和ARM)?如果已配置,可跳过该步骤。 安装并运行容器引擎。 获取yum源里的docker-engine包。 yum search docker-engine 使用yum install -y命令安装上一步获取的docker-engine包,x86架构示例: yum install docker-engine.x86_64 -y 设置开机启动Docker服务。 systemctl enable docker 启动Docker。 systemctl start docker 检查安装结果。 docker --version 回显如下类似信息,表示容器引擎安装成功。 Docker version 18.09.0, build 384e3e9
-
操作场景 通过docker pull命令下载Docker Hub的公开镜像时,往往会因为网络原因而需要很长时间,甚至可能因超时而下载失败。为此,容器镜像服务提供了镜像下载加速功能,帮助您获得更快的下载体验。 SWR镜像加速器是面向个人开发者的服务,仅限于支持个人开发场景,不允许有再次封装或商业用途。 面向生产环境使用场景,为避免Docker访问网络问题导致的镜像拉取失败,建议您在生产环境中慎重考虑对Docker Hub容器镜像的依赖,将需要的镜像从Docke Hub同步到SWR私有仓库使用。 根据Docker公司政策,2020年11月01日起将逐步向Docker Hub匿名和免费用户实施速率和拉取请求次数限制。SWR镜像加速器无法保证一定拉取到所有的镜像版本,建议您将需要的镜像从Docke Hub同步到SWR私有仓库使用。关于Docker Hub收费标准、访问限制的详细介绍,请参见Docker官方网站。
-
操作场景 如果您需要对容器镜像服务进行权限管理,您可以使用 统一身份认证 服务 IAM ,设置权限的方法请参见创建用户并授权使用SWR。当您具有SWR Admin或者Tenant Administrator系统权限时,您就拥有了SWR的管理员权限,可以在SWR中为其他IAM用户进行授权。 拥有SWR管理员权限的用户,默认拥有所有组织下的镜像管理权限,即使该用户不在组织的授权用户列表中。 如果您没有SWR的管理员权限,就需要已拥有SWR管理员权限的用户在SWR中进行授权管理,为您添加对某个镜像的权限或对某个组织中所有镜像的权限。 场景示例: 示例一:我是拥有ServiceStage Developer权限(SWR只读权限)的IAM用户,想要下载SWR管理员所创建的“group”组织下的“nginx”镜像。 策略:SWR管理员在“nginx”镜像详情中为您授予“读取”权限,授权完成后,您将享有下载该镜像的权限。 示例二:我是SWR管理员,需要给公司外部员工授权一个组织的镜像上传权限,但是不允许他登录控制台,只能通过Docker客户端push镜像。 策略:您在组织详情“用户”页签下为该员工授予“编辑”权限,并且在IAM中设置访问方式为“编程访问”。 图1 修改访问方式示例
-
授权方法 容器镜像服务中给IAM用户添加权限有如下两种方法: 在镜像详情中添加授权,授权完成后,IAM用户享有读取/编辑/管理该镜像的权限。 在组织中添加授权,使IAM用户对组织内所有镜像享有读取/编辑/管理的权限。 图2 用户权限 容器镜像服务中为用户添加的权限有如下三种类型: 读取:只能下载镜像,不能上传。 编辑:下载镜像、上传镜像、编辑镜像属性以及添加触发器。 管理:下载镜像、上传镜像、删除镜像或版本、编辑镜像属性、添加授权、添加触发器以及共享镜像。 页面上传镜像功能要求具备组织的编辑或管理权限,在镜像详情中添加的编辑或管理权限不支持页面上传镜像。
-
单个镜像同步 登录容器镜像服务控制台。 在左侧导航栏选择“我的镜像”,单击右侧镜像名称。 在镜像详情页面单击右上角“镜像自动同步”。 单击图标,选择目标区域和目标组织,然后单击“确定”完成添加。 图1 添加镜像自动同步 目标区域:选择同步的目标区域,例如“华北-北京一”。 目标组织:选择同步的目标组织。 覆盖: 勾选则表示覆盖,同步相同名称相同版本的镜像时,同步后会替换已有的镜像版本。 不勾选则表示不覆盖,同步相同名称相同版本的镜像时,会取消同步并提示已存在相同版本镜像。 在镜像详情页面的“镜像同步记录”页签下,可查看镜像同步启动时间、镜像版本、状态、同步类型、同步耗时等。
-
为什么登录指令执行失败? 登录指令执行失败有以下几种情况: 容器引擎未安装正确,报如下所示错误: “docker: command not found” 解决方法:重新安装容器引擎,安装方法请参见安装容器引擎。 由于容器镜像服务支持容器引擎1.11.2及以上版本上传镜像,建议下载对应版本。 安装容器引擎需要连接互联网,内网服务器需要绑定弹性公网IP后才能访问。 临时登录指令已过期或登录指令中区域项目名称、AK、登录密钥错误,报如下所示错误: “unauthorized: authentication required” 解决方法:登录容器镜像服务控制台,在左侧菜单栏选择“我的镜像”,单击右侧“客户端上传”获取登录指令。 获取临时的登录指令:单击“生成临时登录指令”,在弹出的页面中单击复制登录指令。 获取长期有效的登录指令:单击“如何获取长期有效登录指令”,具体方法请参见获取长期有效登录指令。 登录指令中镜像仓库地址错误,报如下所示错误: “Error llgging in to v2 endpoint, trying next endpoint: Get https://{{endpoint}}/v2/: dial tcp: lookup {{endpoint}} on xxx.xxx.xxx.xxx:53 : no such host” 解决方法: 修改登录指令中的镜像仓库地址。 镜像仓库地址格式 : swr.区域项目名称.myhuaweicloud.com,如“华北-北京四”对应的镜像仓库地址为swr.cn-north-4.myhuaweicloud.com。 获取临时的登录指令:方法请参见2。 x509: certificate has expired or is not yet valid 长期有效登录指令中AK/SK被删除导致,请使用有效的AK/SK生成登录指令。 x509: certificate signed by unknown authority 问题原因: 容器引擎客户端和SWR之间使用HTTPS的方式进行通信,客户端会对服务端的证书进行校验。如果服务端证书不是权威机构颁发的,则会报如下错误:x509: certificate signed by unknown authority 解决方法: 如果用户信赖服务端,跳过证书认证,那么可以手动配置Docker的启动参数,配置方法如下: CentOS: 修改“/etc/docker/daemon.json”文件(如果没有,可以手动创建),在该文件内添加如下内容: { "insecure-registries": ["{镜像仓库地址}"] } Ubuntu: 修改“/etc/default/docker”文件,在DOCKER_OPTS配置项中增加如下内容: DOCKER_OPTS="--insecure-registry {镜像仓库地址}" EulerOS: 修改“/etc/sysconfig/docker”文件,在INSECURE_REGISTRY配置项中增加如下内容: INSECURE_REGISTRY='--insecure-registry {镜像仓库地址}' 镜像仓库地址支持域名和IP形式。 域名:swr.区域项目名称.myhuaweicloud.com。例如“华北-北京四”的镜像仓库地址为:swr.cn-north-4.myhuaweicloud.com。 IP:可通过ping镜像仓库地址(域名形式)获取。 配置完成后,执行systemctl restart docker重启容器引擎。 denied: Authenticate Error 用户无编程访问权限,需要使用管理员账号登录IAM,修改用户访问方式。 denied: Not allow to login、upload or download image 用户大批量并发上传镜像或者攻击服务,系统把用户拉黑,用户无法登录和上传下载镜像。请在30分钟之后重新尝试或通过提工单的形式,由运维工程师进行处理。 父主题: 故障类
-
tag does not exist: xxxxxx或An image does not exist locally with the tag: xxxxxx 问题现象:使用客户端上传镜像,报如下所示错误: “tag does not exist: xxxxxx” 或 “An image does not exist locally with the tag: xxxxxx” 问题原因:上传的镜像或镜像版本不存在。 解决方法:通过docker images查看本地镜像,确认要上传的镜像名称及版本后,重新上传镜像。
-
name invalid: 'repository' is invalid 问题现象:使用客户端上传镜像,报如下所示错误: “name invalid: 'repository' is invalid” 问题原因:组织命名或镜像命名不规范。 解决方法:以下分别是组织名(namespace)和仓库名(repository)的命名正则表达式: namespace:^([a-z]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$,长度范围为:1-64; repository:^([a-z0-9]+(?:(?:(?:_|__|[-]*)[a-z0-9]+)+)?)$,长度范围为:1-128。 您可以按照上述命名规范,重新指定上传的组织和镜像名称。
-
denied: Image organization does not exist, you should create it first 问题现象:使用客户端上传镜像,报如下所示错误: “denied: Image organization does not exist, you should create it first” 问题原因:docker push命令中的组织名称不存在。 解决方法:请先创建组织,再重新上传。
-
denied: you do not have the permission 问题现象:使用客户端上传镜像,报如下所示错误: “denied: you do not have the permission” 问题原因: 该组织名已被其他用户注册或当前SWR组织数量已超过配额。 docker login命令使用IAM用户的AK、SK生成,没有对应组织的权限。 解决方法: 该组织名已被其他用户注册时:建议您先创建组织然后再上传镜像,创建组织的方法请参见创建组织。 SWR组织数量超过配额时:单个用户的组织数量限制为5个,您可以将镜像上传到已存在的组织下,也可以提交工单申请增加配额。 没有对应组织的权限:使用账号授权后,可以正常推送。授权操作请参见授权管理。
-
操作步骤 下载image-syncer到执行机上,解压并运行工具。 以v1.3.1版本为例,您也可以选择其他版本。 wget https://github.com/AliyunContainerService/image-syncer/releases/download/v1.3.1/image-syncer-v1.3.1-linux-amd64.tar.gz tar -zvxf image-syncer-v1.3.1-linux-amd64.tar.gz 创建镜像仓库的认证信息文件auth.json。 image-syncer支持基于Docker Registry V2搭建的docker镜像仓库,按格式填写即可。将源仓库及目标仓库认证信息写入,示例如下。 { "swr.××××.myhuaweicloud.com": { "username": "××××@F1I3Q……", "password": "2fd4c869ea0……" }, "swr.××××.myhuaweicloud.com": { "username": "××××@4N3FA……", "password": "f1c82b57855f9d35……" } 其中swr.××××.myhuaweicloud.com 为镜像仓库地址,username、password可以在登录命令中获取,获取方法如下: 登录SWR控制台,在总览页面右上角单击“登录指令”,在弹出的窗口中获取登录指令,如下图所示。 图1 登录指令 创建同步镜像描述文件images.json。 如下示例,左边是源仓库的地址,右边是目的仓库地址。image-syncer还支持其他描述方式,具体请参见README-zh_CN.md。 { "swr.cn-north-4.myhuaweicloud.com/org-ss/canary-consumer": "swr.cn-east-3.myhuaweicloud.com/dev-container/canary-consumer" } 执行如下命令将镜像迁移至SWR。 ./image-syncer --auth=./auth.json --images=./images.json --namespace=dev-container --registry=swr.cn-east-3.myhuaweicloud.com --retries=3 --log=./log 表1 命令行参数说明 参数 说明 --config 设置用户提供的配置文件路径,使用之前需要创建此文件,默认为当前工作目录下的config.json文件。这个参数与 --auth和--images 的作用相同,分解成两个参数可以更好地区分认证信息与镜像仓库同步规则。建议使用 --auth 和 --images。 --images 设置用户提供的镜像同步规则文件所在路径,使用之前需要创建此文件,默认为当前工作目录下的images.json文件。 --auth 设置用户提供的认证文件所在路径,使用之前需要创建此认证文件,默认为当前工作目录下的auth.json文件。 --log 打印出来的log文件路径,默认打印到标准错误输出,如果将日志打印到文件将不会有命令行输出,此时需要通过cat对应的日志文件查看。 --namespace 设置默认的目标namespace,当配置文件内一条images规则的目标仓库为空,并且默认registry也不为空时有效,可以通过环境变量DEFAULT_NAMESPACE设置,同时传入命令行参数会优先使用命令行参数值。 --proc 并发数,进行镜像同步的并发goroutine数量,默认为5。不建议修改该参数。 --retries 失败同步任务的重试次数,默认为2,重试会在所有任务都被执行一遍之后开始,并且也会重新尝试对应次数生成失败任务的生成。一些偶尔出现的网络错误比如io timeout、TLS handshake timeout,都可以通过设置重试次数来减少失败的任务数量。 --registry 设置默认的目标registry,当配置文件内一条images规则的目标仓库为空,并且默认namespace也不为空时有效,可以通过环境变量DEFAULT_REGISTRY设置,同时传入命令行参数会优先使用命令行参数值。 迁移命令执行后,可登录目标镜像仓库,查看已迁移的镜像。
-
操作步骤 从源仓库下载镜像。 使用docker pull命令下载镜像。 示例:docker pull nginx:latest 使用docker images命令查看是否下载成功。 # docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 22f2bf2e2b4f 5 hours ago 22.8MB 将步骤1中下载的镜像上传到SWR。 登录到目标端容器所在虚拟机,并登录SWR。详细步骤请参考客户端上传镜像。 给镜像打标签。 docker tag [镜像名称:版本名称] [镜像仓库地址]/[组织名称]/[镜像名称:版本名称] 示例: docker tag nginx:v1 swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1 上传镜像至目标镜像仓库。 docker push [镜像仓库地址]/[组织名称]/[镜像名称:版本名称] 示例: docker push swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1 终端显示如下信息,表明上传镜像成功。 The push refers to repository [swr.cn-east-3.myhuaweicloud.com/cloud-develop/nginx:v1] fbce26647e70: Pushed fb04ab8effa8: Pushed 8f736d52032f: Pushed 009f1d338b57: Pushed 678bbd796838: Pushed d1279c519351: Pushed f68ef921efae: Pushed v1: digest: sha256:0cdfc7910db531bfa7726de4c19ec556bc9190aad9bd3de93787e8bce3385f8d size: 1780 返回容器镜像服务控制台,在“我的镜像”页面,执行刷新操作后可查看到对应的镜像信息。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格