由于网速和安全等方面的原因,有时候使用Docker Hub这样的公共仓库可能不方便。Docker官方提供了一个可以构建私有镜像仓库的工具,叫做docker-registry
。
一、部署registry
Docker官方提供了一个搭建私有仓库的镜像registry,我们直接用docker run命令启动这个镜像即可。默认情况下,仓库会创建在/var/kib/registry目录下。可以通过-v参数将镜像文件存放在本地路径中。
[root@localhost ~]# mkdir -p /data/registry
[root@localhost ~]# docker run -d -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name myregistry registry
Unable to find image 'registry:latest' locally
latest: Pulling from library/registry
c87736221ed0: Pull complete
1cc8e0bb44df: Pull complete
54d33bcb37f5: Pull complete
e8afc091c171: Pull complete
b4541f6d3db6: Pull complete
Digest: sha256:8004747f1e8cd820a148fb7499d71a76d45ff66bac6a29129bfdbfdc0154d146
Status: Downloaded newer image for registry:latest
f64f1248803d6bb4da8f51fc8c218856784d1900cc44604c6d21bce10c99d4ee
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f64f1248803d registry "/entrypoint.sh /etc…" 13 minutes ago Up 13 minutes 0.0.0.0:5000->5000/tcp myregistry
二、在客户机上推拉镜像
由于从docker1.3.2版本开始,使用registry时,必须使用TLS保证其安全。我们不用https的话,需要在客户机中增加一个配置文件。
[root@docker ~]# vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.0.152:5000"]
}
# 重启docker
[root@docker ~]# systemctl restart docker
1、推送镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 231d40e811cd 4 weeks ago 126MB
[root@docker ~]# docker tag nginx 192.168.0.152:5000/nginx:latest
[root@docker ~]# docker push 192.168.0.152:5000/nginx:latest
The push refers to repository [192.168.0.152:5000/nginx]
4fc1aa8003a3: Pushed
5fb987d2e54d: Pushed
831c5620387f: Pushed
latest: digest: sha256:189cce606b29fb2a33ebc2fcecfa8e33b0b99740da4737133cdbcee92f3aba0a size: 948
2、查看仓库中的镜像
[root@docker ~]# curl -XGET http://192.168.0.152:5000/v2/_catalog
{"repositories":["nginx"]}
或者通过浏览器查看:
3、拉取镜像
[root@docker ~]# docker pull 192.168.0.152:5000/nginx:latest
latest: Pulling from nginx
000eee12ec04: Pull complete
eb22865337de: Pull complete
bee5d581ef8b: Pull complete
Digest: sha256:189cce606b29fb2a33ebc2fcecfa8e33b0b99740da4737133cdbcee92f3aba0a
Status: Downloaded newer image for 192.168.0.152:5000/nginx:latest
192.168.0.152:5000/nginx:latest
这里只是简单了解下docker-registry。
参考文章:
https://www.cnblogs.com/huanchupkblog/p/10843800.html
http://www.eryajf.net/1939.html
https://www.cnblogs.com/loveyous/p/11364289.html