操作手册
【试用教程】在Dockerfile中使用构建打包镜像并运行
acr
手动配置
75
教程简介
通过本教程,您将学习如何使用阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)构建打包镜像并运行。
阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)是面向容器镜像、Helm Chart等符合OCI标准的云原生制品安全托管及高效分发平台。ACR企业版支持全球同步加速、大规模和大镜像分发加速、多代码源构建加速等全链路加速能力,与容器服务ACK无缝集成,帮助企业降低交付复杂度,打造云原生应用一站式解决方案。
我能学到什么
学会如何使用构建打包镜像并运行。
成功在容器镜像服务控制台绑定源代码仓库。
学会如何新建镜像仓库。
准备环境和资源
10
开始教程前,请按以下步骤准备环境和资源:
访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。
成功登录后,在产品类别下选择容器>容器镜像服务,在容器镜像服务ACR卡片上单击立即试用。
在实例列表页面,单击个人实例卡片上的
。
在提示对话框,勾选知晓个人版无SLA保障且有使用限制,请勿在生产业务中使用。单击确定。
在个人实例页面,单击页面中间的设置Registry登录密码。
在设置Registry登录密码对话框,请输入密码以及确认密码,单击确定。该密码会在Docker中运行镜像登录阿里云Docker Registry时使用,请妥善记录。
准备云服务ECS实例。ECS实例配置需要同时满足以下要求:
规格在1核(vCPU)2 GB及以上。
操作系统为CentOS 7.9 64位。本教程以CentOS 7.9 64位操作系统为例。其他操作系统未验证,建议您使用CentOS 7.9 64位操作系统。
您可以前往阿里云免费试用查看您的阿里云账号是否具有云服务器ECS试用资格。如有试用资格,可通过试用ECS来完成教程。如无试用资格,则需使用自有ECS资源才能完成教程。不建议使用生产环境中的自有ECS资源,也不要将教程中的测试数据和自有ECS资源的数据混用。测试完成后及时清理测试数据,避免影响自有资源正常运行。
创建Dockerfile
5
本教程拷贝并托管位于Github上的一个简单的Dockerfile,带您来体验整个流程。请确保您的仓库中拷贝该Dockerfile成功。
绑定源代码仓库
10
在容器镜像服务控制台,绑定您托管的代码仓库。
登录容器镜像服务控制台。在顶部菜单栏,选择创建的容器实例所在地域。
在实例列表页面单击个人版实例。
在左侧导航栏中选择仓库管理>代码源。
在GitHub对应的操作列,单击绑定账号。在弹出的对话框中单击点击前往源代码仓库登录,跳转到GitHub。
在授权界面,单击Authorize AliyunDeveloper。绑定成功后,会弹出您已成功绑定GitHub账号的提示信息。返回至代码源界面,GitHub栏中显示已绑定,表示绑定成功。
新建镜像仓库
10
在个人版实例管理页面左侧导航栏中选择仓库管理>镜像仓库,然后单击创建镜像仓库。
设置镜像仓库信息。
配置项
描述
示例
地域
镜像仓库所在区域。
华东1(杭州)
命名空间
仓库所属命名空间。一个镜像仓库必须且仅属于一个命名空间。一个命名空间下可以包含多个镜像仓库。
test23432
仓库名称
请输入仓库名称。
test
仓库类型
仓库类型分为公开和私有。无论公开还是私有类型仓库,推送镜像都需要先进行登录。公开仓库所有人均可使用,为了避免您的数据受到损失,建议您使用私有仓库。
公开:拉取镜像时可以免登录,直接通过网络拉取。
私有:必须要通过Docker客户端进行登录,才能拉取镜像。
私有
摘要
简要描述信息。
ACR试用教程示例镜像仓库。
描述信息
完整描述信息,支持Markdown格式。
使用创建Dockerfile中的Dockerfile,结合ACR的镜像构建服务,进行构建打包以及运行镜像。
单击下一步,设置代码源。
参数
描述
代码源
将代码源设为GitHub,选择绑定源代码仓库中绑定的源代码仓库。
构建设置
本示例使用代码变更时自动构建镜像和海外机器构建。
代码变更时自动构建镜像:当分支有代码提交后会自动触发构建规则。
海外机器构建:构建时会在海外机房构建,构建成功后推送到指定地域。
不使用缓存:每次构建时会强制重新拉取基础依赖镜像,可能会增加构建时间。
单击创建镜像仓库。创建完成后,会跳转至镜像仓库详情页面,您可以在仓库详情页面查看仓库的基本信息。
在左侧导航栏,单击仓库名称左侧的
图标。在镜像仓库页面,您可以查看您刚才创建的镜像仓库,仓库状态显示正常,即表示仓库创建成功。
执行构建
10
在个人版实例页面,单击在新建镜像仓库中创建的仓库名称或操作列下的管理。
在镜像仓库基本信息详情页面,单击左侧导航栏中的构建,在构建规则设置区域,单击添加规则。
添加构建规则。
配置项
描述
示例
类型
定义了推送代码到托管仓库,触发构建规则的事件。目前有Branch和Tag两种类型的推送。
Branch
Branch/Tag
设置构建的代码分支。
master
构建上下文目录
设置Dockerfile文件所在的目录。这里的目录指的是相对目录,以代码分支的根目录为父目录。本教程中Dockerfile完整路径是/Dockerfile,此处填写/。
/
Dockerfile文件名
设置Dockerfile文件名,默认为Dockerfile。例如:Dockerfile完整路径是/Dockerfile,此处填写Dockerfile。
Dockerfile
镜像版本
设置镜像版本。
V1.0.0
单击确认,返回至构建页面。
在构建规则设置区域中,找到创建的规则,单击目标规则对应操作列的立即构建。
在构建日志区域中找到构建记录,当构建状态显示成功,表示构建成功。如遇构建排队执行缓慢,请您耐心等待,请稍等镜像构建完成。若构建失败,请您多尝试几次构建。
在ECS中安装Docker
5
登录ECS管理控制台。
在左侧导航栏,选择实例与镜像>实例。
在实例列表页面,找到需要连接的实例,单击该实例对应操作列下的远程连接。
在弹出的连接与命令对话框中,单击通过Workbench远程连接对应的立即登录。
在弹出的登录实例对话框中,输入信息。一般情况下按精简选项输入信息即可,如下表所示。单击确定。
配置项
说明
实例
自动填充当前实例的信息。
网络连接
本教程选择专有网络。
专有网络实例支持选择公网IP或私网IP连接。
经典网络实例支持选择公网IP或内网IP连接。
认证方式
选择认证方式,本教程选择密码认证。支持的认证方式如下:
密码认证:输入用户名(例如root或ecs-user),需要继续输入登录密码。
证书认证:输入用户名(例如root或ecs-user),需要继续输入或上传证书。如果证书已加密,还需要输入密钥口令。
凭据认证:选择已定义好的凭据或者新增凭据。
凭据用于存储实例的用户名、密码和密钥等信息,您无需每次登录都输入用户名、密码,直接选择凭据即可安全登录实例。
执行如下命令,在ECS中安装Docker。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
在Docker中配置镜像加速器
5
由于当前运营商网络问题,可能会导致您拉取Docker Hub镜像变慢。建议您手动拉取镜像到本地节点,然后重启Pod。执行如下命令,在Docker中配置镜像加速器。
登录容器镜像服务控制台。在顶部菜单栏,选择创建的容器实例所在地域。
在左侧导航栏,选择镜像工具>镜像加速器。在加速器区域,复制加速器地址。
执行如下命令,在Docker中配置镜像加速器。请将
https://gwsg6nw9.mirror.aliyuncs.com
替换为您在上一步骤中复制的加速器地址。mkdir -p /etc/docker #创建配置文件目录。 tee /etc/docker/daemon.json <<-'EOF' #写入加速配置。 { "registry-mirrors": ["https://gwsg6nw9.mirror.aliyuncs.com"] } EOF systemctl daemon-reload #重新加载配置文件。 systemctl restart docker #重启Docker服务。
完成
10
查看构建的镜像
在个人版实例管理页面左侧导航栏中选择仓库管理>镜像仓库,单击仓库名称或目标仓库操作列的管理,单击左侧导航栏的镜像版本,查看构建的镜像。
在Docker中运行镜像
在Docker执行如下命令,登录阿里云Docker Registry。请将命令中的
acr_e2******@test.aliyunid.com
替换为您的阿里云账号全名,密码为您在准备环境和资源中设置的密码;cn-hangzhou
替换为您个人版实例所在的地域。docker login --username=acr_e2******@test.aliyunid.com registry.cn-hangzhou.aliyuncs.com
执行如下命令,拉取镜像。请将命令中的
cn-hangzhou
替换为您个人版实例所在的地域;test23432
替换为您实际使用的命名空间;test:V1.0.0
替换为实际使用的仓库名称以及镜像版本。docker pull registry.cn-hangzhou.aliyuncs.com/test23432/test:V1.0.0
执行如下命令,查看Docker镜像。
docker images
执行如下命令,运行镜像。请将命令中的
cn-hangzhou
替换为您个人版实例所在的地域;test23432
替换为您实际使用的命名空间;test:V1.0.0
替换为实际使用的仓库名称以及镜像版本。docker run -ti registry.cn-hangzhou.aliyuncs.com/test23432/test:V1.0.0 Hello World!
清理及后续
10
完成教程后,请及时清理测试数据和使用资源。
ACR个人版实例
ACR提供的个人版实例为长期免费使用,完成教程后,请参考以下场景处理实例:
个人版实例命名空间全球通用,因此限额使用(数量:3)。如果您想长期使用,请避免个人版实例命名空间下的实例数量超过3个。
如果需要删除个人版实例,请参考如下操作步骤。
在个人版实例详情页面,左侧导航栏选择仓库管理>命名空间。
单击目标命名空间操作列下的删除。
在对话框内,选中确定删除该命名空间,删除后不可恢复,单击确定。
在手机验证对话框内,单击点击获取,输入验证码后,单击确定。默认实例命名空间为全球地域维度,删除后该命名空间下所有地域的仓库都会被清理。
ECS实例
如果无需继续使用实例,可以登录ECS控制台,找到目标实例,在操作列单击
,搜索并单击释放设置,根据界面提示释放实例。
如果需要继续使用实例,请至少在试用到期1小时前为阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。
总结
常用知识点
问题1:在Docker里如何运行镜像?(单选题)
正确答案是执行docker run -ti registry.cn-hangzhou.aliyuncs.com/test23432/test:[镜像版本号]
命令。运行镜像需使用run
命令。
问题2:执行docker run -ti registry.cn-hangzhou.aliyuncs.com/test23432/test:[镜像版本号]
命令后,需要输入的密码是哪个呢?(单选题)
正确答案是在准备环境和资源中设置的密码。该命令为登录阿里云镜像仓库的命令,因此这里需要输入的密码为您在准备环境和资源中设置的密码。