安装部署docker私有仓库
准备环境:安装docker
此处不重复说明,详细安装步骤参考我另一篇博客 点此跳转
搭建docker私有仓库
注:以下操作在docker镜像仓库所在服务器执行(192.168.1.217)
首先拉取镜像
# docker pull registry
查看镜像列表
# docker images
拉取成功
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest f32a97de94e1 3 months ago 25.8MB
启动私有仓库
这里-v挂载的目录是镜像实际存放的目录,挂载是为了删除容器时里面的镜像不丢,在本地备份
# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/registry:/var/lib/registry registry:latest
至此 一个私有docker镜像仓库的服务就ojbk了
操作docker私有仓库
注:以下操作在其他服务器执行(192.168.1.218)
上传一个镜像到镜像仓库
首先pull一个测试镜像,这里我们用比较小的busybox
# docker pull busybox
然后,再给一个标识对应镜像仓库所在位置,push时会上传到对应标识的服务上
# docker tag busybox 192.168.1.217:5000/busybox:latest
这时 会报如下错误
Get https://192.168.1.217:5000/v1/_ping: http: server gave HTTP response to HTTPS client
这是因为docker的registry服务默认为https请求,这里方式有很多,因为我们是局域网内部使用,所以添加一下配置就可以了(方便)
注:每台需要访问私有镜像仓库的都要配置
# vim /etc/docker/daemon.json
在里面添加如下代码,保存退出
"insecure-registries":["192.168.1.217:5000"]
如果里面空的没有配置,配置如下
{
"insecure-registries":["192.168.1.161:5000"]
}
然后重新启动docker
# systemctl daemon-reload && systemctl restart docker
再重新push
# docker push 192.168.1.217:5000/busybox:latest
查看已上传的镜像
在客户端服务器输入
curl http://192.168.1.217:5000/v2/_catalog
显示
{"repositories":["busybox"]}
或在镜像仓库服务器上
注:这里的/opt/registry目录是我们刚才挂载的目录,后边的/docker/registry/v2/repositories是固定的
# ls /opt/registry/docker/registry/v2/repositories