构建docker镜像并推送至阿里云

发布员1号 发布于 2021-10-04 93 次阅读


在阿里云控制台进入容器镜像服务

创建一个命名空间、再创建一个镜像仓库

在本地linux环境下定位到dockerfile文件目录

执行

docker build -t gkd:v0.1.2 .

-t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。
-f :指定要使用的Dockerfile路径;(如果有多个Dockerfile文件 可以用-f指定)

构建完成后可以使用docker images查看构建好的镜像

推送至阿里云

(直接贴上阿里云官方教程)

1. 登录阿里云Docker Registry

$ docker login --username=*****@163.com registry.cn-shanghai.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在访问凭证页面修改凭证密码。

2. 从Registry中拉取镜像

$ docker pull registry.cn-shanghai.aliyuncs.com/[命名空间]/[镜像仓库名]:[镜像版本号]

3. 将镜像推送到Registry

$ docker login --username=*****@163.com registry.cn-shanghai.aliyuncs.com
$ docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/[命名空间]/[镜像仓库名]:[镜像版本号]
$ docker push registry.cn-shanghai.aliyuncs.com/[命名空间]/[镜像仓库名]:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号][命名空间][镜像仓库名]参数。

4. 选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-shanghai.aliyuncs.com 作为Registry的域名登录。

5. 示例

使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ docker images
REPOSITORY                          TAG              IMAGE ID         CREATED         VIRTUAL SIZE
registry.aliyuncs.com/acs/agent     0.7-dfb6816      37bb9c63c8b2     7 days ago      37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816

使用 "docker push" 命令将该镜像推送至远程。

$ docker push registry-vpc.cn-shanghai.aliyuncs.com/acs/agent:0.7-dfb6816

PS. 补充

将容器打包成镜像。

$ docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签

OPTIONS说明:

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

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

-p :在commit时,将容器暂停。