docker本地镜像推送到阿里云

本地准备好镜像

从上图可知,镜像的生成无非三种方式:

  • 由dockerfile文件build
  • 由容器commit
  • 从远程仓库pull

这里准备push的镜像是之前安装了vim和telnet的centso镜像:

[root@izbp13m488196e5hna361rz ~]# docker images mycentos
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mycentos     1.0       3b0cb5ffbc9f   4 weeks ago   281MB

在阿里云控制台创建镜像仓库

https://cr.console.aliyun.com/cn-shenzhen/instances/repositories

创建好镜像仓库之后,点进去就可以看到仓库的地址和相关操作指南:

按照操作指南将镜像推送到镜像仓库

1.登录

docker login --username=shuqiaona1991 registry.cn-shenzhen.aliyuncs.com

[root@izbp13m488196e5hna361rz ~]# docker login --username=shuqiaona1991 registry.cn-shenzhen.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.将镜像上传到私有注册中心之前,需要给镜像重命名

docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:[镜像版本号]

[root@izbp13m488196e5hna361rz ~]# docker images mycentos
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
mycentos     1.0       3b0cb5ffbc9f   4 weeks ago   281MB
[root@izbp13m488196e5hna361rz ~]# docker tag 3b0cb5ffbc9f registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0

注意,这里重命名后,两个镜像都会存在,且容器ID是同一个:

ps:docker tag 也常用于给镜像打标签,记录版本号:

[root@izbp13m488196e5hna361rz ~]# docker images son
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
son          latest    9d087b204a81   2 weeks ago   241MB
[root@izbp13m488196e5hna361rz ~]# docker tag son son:1.0
[root@izbp13m488196e5hna361rz ~]# docker tag son son:2.0
[root@izbp13m488196e5hna361rz ~]# docker images son
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
son          1.0       9d087b204a81   2 weeks ago   241MB
son          2.0       9d087b204a81   2 weeks ago   241MB
son          latest    9d087b204a81   2 weeks ago   241MB

3.在本地将镜像推送

docker push registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:[镜像版本号]

[root@izbp13m488196e5hna361rz ~]# docker push registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0
The push refers to repository [registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos]
3a2579d8936d: Pushed 
ba779d07444c: Pushed 
2653d992f4ef: Pushed 
1.0.0: digest: sha256:3392e34214e3d4ec02c5c8639652b6d4e1d7d96f0564012f8c57260e3806e742 size: 952

4.阿里云查看已推送镜像

在镜像中心 -- 镜像搜索 中通过镜像仓库或者命名空间搜索:

点进去查看详情,其中有对应的下载地址,方便pull提取:

5.将阿里云的新镜像提取到本地,运行容器验证

为了避免重复,先删除本地原有的:

[root@izbp13m488196e5hna361rz ~]# docker rmi -f registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0
Untagged: registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0
Untagged: registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos@sha256:3392e34214e3d4ec02c5c8639652b6d4e1d7d96f0564012f8c57260e3806e742

远程拉取镜像:

[root@izbp13m488196e5hna361rz ~]# docker pull registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0
1.0.0: Pulling from nick0922/nick_centos
Digest: sha256:3392e34214e3d4ec02c5c8639652b6d4e1d7d96f0564012f8c57260e3806e742
Status: Downloaded newer image for registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0
registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0

根据registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0创建容器,并验证:

root@izbp13m488196e5hna361rz ~]# docker run -it registry.cn-shenzhen.aliyuncs.com/nick0922/nick_centos:1.0.0
[root@b5067d3f4abd local]# which vim
/usr/bin/vim
[root@b5067d3f4abd local]# which telnet
/usr/bin/telnet

容器可以使用vim和telnet,验证成功。

posted @ 2021-03-08 17:48  酒红色  阅读(335)  评论(0编辑  收藏  举报