Docker registry简介

image.png

运行registry

下载并运行registry

  1. [root@centos ~]# docker run -d -p 5000:5000 -v ${PWD}/registry:/var/lib/registry --restart always --name registry registry:2.7.1
  2. Unable to find image 'registry:2.7.1' locally
  3. 2.7.1: Pulling from library/registry
  4. cbdbe7a5bc2a: Pull complete
  5. 47112e65547d: Pull complete

演示

构建一个本地registry仓库。
思路就是启动一个容器来作为registry仓库镜像存储镜像。

修改daemon.json

  1. [root@centos ~]# cd /etc/docker/
  2. [root@centos docker]# ls
  3. daemon.json key.json
  4. [root@centos docker]#
  5. [root@centos docker]# cat daemon.json
  6. {
  7. "registry-mirrors": ["https://s2nni63l.mirror.aliyuncs.com"]
  8. }

将加速器地址改成本地监听端口:

  1. {
  2. "registry-mirrors": ["http://127.0.0.1:5000"]
  3. }

重启docker

  1. [root@centos docker]# systemctl restart docker

浏览器查看

这里看到repositories为空,因为仓库里面没有什么。
image.png

将镜像打包,并push到registry

  1. [root@centos docker]# docker tag nginx:1.17.9 127.0.0.1:5000/nginx:1.17.9
  2. [root@centos docker]# docker push nginx:1.17.9 127.0.0.1:5000/nginx:1.17.9
  3. "docker push" requires exactly 1 argument.
  4. See 'docker push --help'.
  5. Usage: docker push [OPTIONS] NAME[:TAG]
  6. Push an image or a repository to a registry
  7. [root@centos docker]# docker push 127.0.0.1:5000/nginx:1.17.9
  8. The push refers to repository [127.0.0.1:5000/nginx]
  9. 351816b95c49: Pushed
  10. 0e07021aa61a: Pushed
  11. b60e5c3bcef2: Pushed
  12. 1.17.9: digest: sha256:30d9dde0c4cb5ab4989a92bc2c235b995dfa88ff86c09232f309b6ad27f1c7cd size: 948

浏览器查看restry

可以看到仓库中有nginx镜像了。
image.png
下次可以直接从自己构建的仓库去拉取镜像会快很多。
这次演示由于资源有限,全部在一台机器上搭建。
资源足够的话,可以用一台server来搭建registry,操作时类似的,存放好镜像,这样在同一局域网下面大家就可以公用这个仓库,提升拉取镜像速度了。

  1. [root@centos docker]# docker pull 127.0.0.1:5000/nginx:1.17.9
  2. 1.17.9: Pulling from nginx
  3. Digest: sha256:30d9dde0c4cb5ab4989a92bc2c235b995dfa88ff86c09232f309b6ad27f1c7cd
  4. Status: Image is up to date for 127.0.0.1:5000/nginx:1.17.9
  5. 127.0.0.1:5000/nginx:1.17.9