Docker镜像仓Docker Hub与本地Registry使用

原创 浪子丶刘少  2019-06-18 09:30  阅读 1,284 次 评论 0 条 百度未收录

最先准备

一、下载一个httpd镜像备用

docker run -d -p 80:80 httpd

Docker Hub

一、登录Docker Hub

[root@liushao ~]# docker login -u ezliushao
Passwd:
其中-u为指定你的docker hub的用户名

二、修改镜像名称

Docker Hub 为了区分不同用户的同名镜像,镜像的 registry 中要包含用户名,完整格式为:[username]/xxx:tag
[root@liushao ~]# docker tag httpd ezliushao/httpd:v1
注:Docker官方镜像无名称

三、镜像上传

[root@liushao ~]# docker push ezliushao/httpd:v1
The push refers to a repository [docker.io/ezliushao/httpd]
d12cae5562ef: Mounted from library/httpd
d188fb853e8f: Mounted from library/httpd
320e3241be93: Mounted from library/httpd
5de0920316a3: Mounted from library/httpd
6270adb5794c: Mounted from library/httpd
v1: digest: sha256:5757eb198952597374890e4fc0 size: 1367
Docker 会上传镜像的每一层。因为 ezliushao/httpd:v1 这个镜像实际上跟官方的 httpd 镜像一模一样,Docker Hub 上已经有了全部的镜像层,所以真正上传的数据很少。同样的,如果我们的镜像是基于 base 镜像的,也只有新增加的镜像层会被上传。如果想上传同一 repository 中所有镜像,省略 tag 部分就可以了,例如:
docker push ezliushao/httpd

本地Registry

1、启动 registry 容器

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry:2
注:
-d  后台启动容器
-p  将容器的 5000 端口映射到 Host 的 5000 端口
-v  将容器 /var/lib/registry 目录映射到 Host 的 /myregistry

2、docker tag 重命名镜像,使之与 registry 匹配

docker tag ezliushao/httpd:v1 registry.example.net:5000/ezliushao/httpd:v1
注:
1.repository 的完整格式为:[registry-host]:[port]/[username]/xxx
2.只有 Docker Hub 上的镜像可以省略 [registry-host]:[port]

3、通过 docker pull 上传镜像

docker push registry.example.net:5000/ezliushao/httpd:v1
本文地址:https://www.ezliushao.com/220.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!

发表评论


表情