41、Docker - 实战:将本地镜像推送到阿里云

1、准备工作

(1)创建阿里云平台账号

阿里云官网地址:https://www.aliyun.com/

淘宝、支付宝账号可复用,这里不做过多说明了。

(2)找到容器镜服务界面

在阿里云官网主页,产品 —> 容器与中间件 —> 容器镜像服务ACR —> 管理控制台。

如下图所示:

 

进入到阿里云容器镜像服务界面如下:

 

我们之前说过镜像加速器,今天我们来说说阿里云容器镜像仓库。

2、阿里云容器镜像仓库的使用

(1)创建命名空间

点击左侧边栏的命名空间,再点击右上角创建命名空间,然后在弹出的对话对话框中,输入自定义命名空间的名称。

 

注意:一个账号最多可以创建3个命名空间。

创建好的命名空间如下:

 

(2)创建容器镜像

点击左侧边栏的镜像仓库,再点击创建镜像仓库。

在弹出的界面中输入镜像仓库的信息如下:

 

说明:

  • 地域:自己选择一个就好。
  • 命名空间:选择自己设置的,没有可以点击进行设置。
  • 仓库名称:自定义即可。
  • 仓库类型:私有只自己可访问,公有其他人也可以访问。(私有即可)
  • 摘要:就是对该仓库的一个简要说明。

点击下一步,然后选择本地仓库,最后点击创建镜像仓库。

 

之后就可以看到我们创建的阿里云镜像仓库了。

 

重点说一下(重点,重点)

我理解阿里云镜像仓库,存放镜像的目录如下:公网地址/命名空间/仓库:版本号

所以我的理解:

  • 命名空间:是用来存放镜像的目录。
  • 而镜像仓库就相当于镜像名,一个镜像仓库仓库只存储一个镜像,和这个镜像的不同版本。

即:以后在阿里云镜像仓库创建镜像命名的时候,建议以软件包名或应用名作为仓库名称

(3)查看阿里云镜像仓库的信息

点击仓库名称位置或者后边的管理,就能够看到我们刚刚创建的阿里云镜像仓库的详细信息。

如下:

 

说明:公网地址就是,可以通过该地址访问到这个仓库。

下面是对阿里云镜像仓库的操作指南:

1、 登录阿里云DockerRegistry

$ sudo docker login --username=aliyuelin registry.cn-beijing.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。
您可以在访问凭证页面修改凭证密码。 2、Registry中拉取镜像;

$ sudo docker pull registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:[镜像版本号]

3、 将镜像推送到Registry

$ sudo docker login --username=aliyuelin registry.cn-beijing.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:[镜像版本号]
$ sudo docker push registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:[镜像版本号]

请根据实际镜像信息替换示例中的[ImageId][镜像版本号]参数。 4、 选择合适的镜像仓库地址;
ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。
如果您使用的机器位于VPC网络,请使用registry-vpc.cn-beijing.aliyuncs.com作为Registry的域名登录。 5、 示例;
使用docker tag命令重命名镜像,并将它通过专有网络地址推送至Registry。

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

$ sudo docker tag 37bb9c63c8b2 registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816

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

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

3、将本地Docker镜像推送到阿里云

我们就按照上面操作文档的第三步进行操作,将本地Docker镜像推送到阿里云镜像仓库。

(1)登陆阿里云

# 输入第一行命令
[root@192 ~]# docker login --username=aliyuelin registry.cn-beijing.aliyuncs.com
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

(2)给镜像生成版本号

命令:sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:[镜像版本号]

说明:

  • [ImageId]:输入你本地将要上传镜像的Image Id。
  • [镜像版本号]:Docker镜像的TAG(自定义)。

示例:

# 查看本地Docker镜像
[root@192 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
diytomcat9   latest    12988584a30e   16 hours ago   607MB
centos       latest    300e315adb2f   3 months ago   209MB

给上传镜像生成一个版本号。

 

(3)推送本地镜像到阿里云镜像仓库

执行命令:$ sudo docker push registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:[镜像版本号]

示例:

[root@192 ~]# docker push registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:1.8
The push refers to repository [registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9]
b4ef62e90bac: Pushed
5da8b73f85d7: Pushed
68a0171f3cc4: Pushed
76f4ae6e5125: Pushed
2653d992f4ef: Pushed
1.8: digest: sha256:4752b493708372b50f4169eee3df449caef050fc18e604849f584e49d554bbab size: 1373
[root@192 ~]#

可以看到,向阿里云镜像仓库推送镜像的时候,也是按照镜像的层级来进行推送的。

4、在阿里云中查看本地推送的镜像

在阿里云官网主页,产品 —> 容器与中间件 —> 容器镜像服务ACR —> 管理控制台。

然后镜像仓库列表中,点击wukong_tomcat9镜像仓库,然后点击左侧边栏的镜像版本,查看镜像信息。

如下:

 

5、从阿里云镜像库拉取镜像到本地

按照上面操作文档的第二步进行操作。

执行命令:sudo docker pull registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:[镜像版本号]

示例:

# 查看本地Docker镜像
[root@192 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
centos       latest    300e315adb2f   3 months ago   209MB

# 从阿里云镜像库拉取镜像
[root@192 ~]# docker pull registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:1.8
1.8: Pulling from wukong6688/wukong_tomcat9
7a0437f04f83: Already exists
ebca8570a55c: Already exists
52613dee4841: Already exists
f20d670a00b6: Already exists
1d6b94f6dacc: Already exists
Digest: sha256:4752b493708372b50f4169eee3df449caef050fc18e604849f584e49d554bbab
Status: Downloaded newer image for registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:1.8
registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9:1.8

# 再次查看本地Docker镜像
[root@192 ~]# docker images
REPOSITORY                                                   TAG       IMAGE ID       CREATED        SIZE
registry.cn-beijing.aliyuncs.com/wukong6688/wukong_tomcat9   1.8       12988584a30e   21 hours ago   607MB
centos                                                       latest    300e315adb2f   3 months ago   209MB