温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker中Repository仓库的介绍

发布时间:2020-05-22 16:38:15 来源:亿速云 阅读:372 作者:鸽子 栏目:系统运维

访问Docker仓库

仓库(Repository)是集中存放镜像的地方,又分共有仓库和私有仓库。注册服务器和仓库有所区别,注册服务器是存放仓库的具体服务器,一个注册服务器可以有多个仓库,而每个仓库下可以有多个镜像,仓库可以被认为是一个具体的项目或目录,如private-docker.com/ubuntu private-docker.com是注册服务器地址,ubuntu是仓库名。

公共镜像市场

Docker Hub是docker官方提供的最大的公共镜像仓库,网址https://hub.docker.com 大部分镜像的需求都可以在Docker hub中直接下载
1、登录,可以通过命令执行docker login命令来输入用户名、密码和邮件来完成注册和登录,注册成功后本地用户目录下会自动穿件.docker/config.json文件,保存用户的认证信息。
2、基本操作,用户不需要登录就可以通过docker search命令来查找官方仓库的镜像,并利用docker [image] pull命令来将他下载到本地。
3、自动创建,是docker hub提供的自动化服务,可以自动跟随项目代码更新而重新构建镜像。如创建了一个应用镜像,如果发布了新版本需要手动跟新镜像。而自动创建可以让用户通过docker hub指定一个目标网站上的项目,一旦项目发生变化,自动执行创建。
1)创建登录Docker Hub
2)在目标网站中允许Docker Hub访问服务
3)在Docker Hub中配置一个自动创建类型的项目
4)选取一个目标网站中的项目和分支
5)指定Dockerfile的位置,并提交创建。

搭建本地私有仓库

使用registry创建私有镜像,并启动。仓库会被创建在容器的/var/lib/registry目录下,使用-v参数将镜像文件存放到指定目录(本地的/opt/data/registry)下

[root@docker01 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
486039affc0a: Pull complete 
ba51a3b098e6: Pull complete 
8bb4c43d6c8e: Pull complete 
6f5f453e5f2d: Pull complete 
42bc10b72f42: Pull complete 
Digest: sha256:7d081088e4bfd632a88e3f3bcd9e007ef44a796fddfe3261407a3f9f04abe1e7
Status: Downloaded newer image for registry:2
7166c8c34d7ff45d5e9200909ea17cebfd3894852cf1f49ee9e944ea1218fd9a

查看已有镜像并使用tag修改镜像标记为10.10.17.199:5000/test

[root@docker01 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
ubuntu                   18.04               72300a873c2c        2 weeks ago         64.2MB
[root@docker01 ~]# docker tag ubuntu:18.04 10.10.17.199:5000/test

直接上传标记镜像会报错

[root@docker01 ~]# docker push 10.10.17.199:5000/test
The push refers to repository [10.10.17.199:5000/test]
Get https://10.10.17.199:5000/v2/: http: server gave HTTP response to HTTPS client

修改daemon.json文件,重新加载并重起docker,启动registry

[root@docker01 ~]# vim /etc/docker/daemon.json
{ "insecure-registries":["10.10.17.199:5000"] 
[root@docker01 ~]# systemctl daemon-reload 
[root@docker01 ~]# systemctl restart docker
[root@docker01 ~]# docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
b3e4503d76bf818f4d4a8cbb399f2826c335a97d5bae6b21d66d671c4983d99f

上传标记镜像

[root@docker01 ~]# docker push 10.10.17.199:5000/test
The push refers to repository [10.10.17.199:5000/test]
1852b2300972: Pushed 
03c9b9f537a4: Pushed 
8c98131d2d1d: Pushed 
cc4590d6a718: Pushed 
latest: digest: sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9 size: 1152

测试,删除原有10.10.17.199:5000/test,再pull一个下来

[root@docker01 ~]# docker rmi 10.10.17.199:5000/test
Untagged: 10.10.17.199:5000/test:latest
Untagged: 10.10.17.199:5000/test@sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9
[root@docker01 ~]# docker pull 10.10.17.199:5000/test
Using default tag: latest
latest: Pulling from test
Digest: sha256:0925d086715714114c1988f7c947db94064fd385e171a63c07730f1fa014e6f9
Status: Downloaded newer image for 10.10.17.199:5000/test:latest
10.10.17.199:5000/test:latest
[root@docker01 ~]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
10.10.17.199:5000/test   latest              72300a873c2c        2 weeks ago         64.2MB
ubuntu                   18.04               72300a873c2c        2 weeks ago         64.2MB

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI