除了使用Docker Hub,还可以根据自己的需求创建似有仓库。下面就介绍在centos7 下创建似有仓库。本文内容基于 docker-registry v2.x 版本。
- 运行仓库镜像
通过获取官方 registry 镜像来运行
$ docker run -d -p 5000:5000 --restart=always --name registry registry
默认创建的容器目录: /var/lib/registry .你可以通过 -v 参数来将镜像文件存放在本地的指定路径。例如下面的例子将上传的镜像放到本地的 /home/data/registry 目录。
$ docker run -d \
-p 5000:5000 \
-v /home/data/registry:/var/lib/registry \
registry
- push/pull似有仓库
创建好似有仓库、并运行之后。就可以将自己的镜像push 到似有仓库了。
假设似有仓库的地址是 192.168.103.22:5000
2.1 查看本机镜像
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest ba5877dc9bec 9 weeks ago 192.7 MB
使用 docker tag 将 ubuntu:latest 这个镜像标记为 192.168.103.22:5000/ubuntu:latest。
$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu latest ba5877dc9bec 9 weeks ago 192.7 MB
192.168.103.22:5000/ubuntu:latest latest ba5877dc9bec 9 weeks ago 192.7 MB
2.2 使用 docker push 上传标记的镜像
$ docker push 192.168.103.22:5000/ubuntu:latest
The push refers to repository [192.168.103.22:5000/ubuntu]
373a30c24545: Pushed
a9148f5200b0: Pushed
cdd3de0940ab: Pushed
fc56279bbb33: Pushed
b38367233d37: Pushed
2aebd096e0e2: Pushed
latest: digest: sha256:fe4277621f10b5026266932ddf760f5a756d2facd505a94d2da12f4f52f71f5a size: 1568
2.3 curl 查看仓库中的镜像
$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["ubuntu"]}
2.4 在另一台主机(假设IP:192.168.103.23)pull该镜像
首先在192.168.103.23 创建文件 /etc/docker/daemon.json
写入内容
{
"insecure-registries": [
"192.168.103.22:5000"
]
}
然后重启启动 docker
service docker restart