docker 创建私有镜像之 registry
一、下载 registry 镜像
[root@localhost ~]# docker pull registry Using default tag: latest latest: Pulling from library/registry c87736221ed0: Pull complete 1cc8e0bb44df: Pull complete 54d33bcb37f5: Pull complete e8afc091c171: Pull complete b4541f6d3db6: Pull complete Digest: sha256:f87f2b82b4873e0651f928dcde9556008314543bd863b3f7e5e8d03b04e117f7 Status: Downloaded newer image for registry:latest
二、创建镜像存储目录
[root@localhost ~]# mkdir /data/registry
三、创建镜像容器
[root@localhost ~]# docker run -itd -v /data/registry:/var/lib/registry -p 80:5000 --restart=always --name registry registry e630985b09af4dedcf81a8dcb80202e591fefefc0a86e8328be70ce0643ab399
#检查容器是否创建成功 [root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e630985b09af registry "/entrypoint.sh /etc…" 23 seconds ago Up 22 seconds 0.0.0.0:80->5000/tcp registry
#检查容器运行是否正常,如下显示说明运行正常 [root@localhost ~]# curl http://127.0.0.1/v2/_catalog {"repositories":[]}
四、修改daemon.json文件,修改为如下内容
[root@localhost ~]# vim /etc/docker/daemon.json { "registry-mirrors": ["https://wixr8yss.mirror.aliyuncs.com"], "insecure-registries":["10.10.0.110:80"], "bip":"172.31.0.1/16" }
五、重启docker
[root@localhost ~]# systemctl restart docker
六、测试
#从官方pull busybox 镜像 [root@localhost ~]# docker pull busybox Using default tag: latest latest: Pulling from library/busybox 53071b97a884: Pull complete Digest: sha256:4b6ad3a68d34da29bf7c8ccb5d355ba8b4babcad1f99798204e7abb43e54ee3d Status: Downloaded newer image for busybox:latest
#查看当前镜像 [root@localhost ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 64f5d945efcc 5 days ago 1.2MB registry latest f32a97de94e1 2 months ago 25.8MB
#为镜像打tag [root@localhost ~]# docker tag busybox:latest 10.10.0.110:80/busybox:v1
#查看tag 是否标记成功 [root@localhost ~]# docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE 10.10.0.110/busybox v1 64f5d945efcc 5 days ago 1.2MB busybox latest 64f5d945efcc 5 days ago 1.2MB registry latest f32a97de94e1 2 months ago 25.8MB
#将镜像推送到私有镜像仓库中 [root@localhost ~]# docker push 10.10.0.110:80/busybox:v1 The push refers to repository [10.10.0.110:80/busybox] d1156b98822d: Pushed v1: digest: sha256:4fe8827f51a5e11bb83afa8227cbccb402df840d32c6b633b7ad079bc8144100 size: 527
#测试拉取镜像 [root@localhost repositories]# docker pull 10.10.0.110:80/busybox:v1 v1: Pulling from busybox 53071b97a884: Pull complete Digest: sha256:4fe8827f51a5e11bb83afa8227cbccb402df840d32c6b633b7ad079bc8144100 Status: Downloaded newer image for 10.10.0.110:80/busybox:v1
七、查看当前私有仓库中有哪些镜像以及镜像的tag
[root@localhost repositories]# curl http://10.10.0.110:80/v2/_catalog {"repositories":["busybox"]} [root@localhost repositories]# curl http://10.10.0.110:80/v2/busybox/tags/list {"name":"busybox","tags":["v1"]}