18.Docker私库安装
前置参见:3.Ubuntu 16.04.6 离线安装 docker
开始配置第一台Docker私有仓库服务器
拉取镜像
docker pull registry
查看镜像是否已经成功获取
运行镜像
docker run -tid --name registry --restart=always -p 5000:5000 -v /data/registry:/var/lib/registry registry
#运行该镜像,各个选项含义如下:
# -tid:以后台持久运行,并分配一个可交互的为终端
# --name registry :给容器定义一个名字
# --restart=always:该容器可以随着docker服务的启动而启动
# -p:将容器的端口映射到宿主机,冒号前面是宿主机的端口,冒号后面是容器的端口,registry的默认端口是5000
# -v:将宿主机的目录挂载到容器中,冒号前面是宿主机的目录,冒号后面是容器中的目录
查看docker运行的镜像
docker ps
至此仓库搭建完成
解决私库https无法访问问题
若是没有 /etc/docker/daemon.json 这个文件,就新建一个
状况1.这种写法是没有配置Docker加速器的状况下
// 单个私服的写法 { "insecure-registries": ["registry的IP地址:端口号"] } // 多个私服的写法 { "insecure-registries": ["registry1的IP地址:端口号","registry2的IP地址:端口号"] }
状况2.这种写法是配置过Docker加速器的状况
// 单个私服的写法
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries": ["registry的IP地址:端口号"]
}
// 多个私服的写法
{
"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries": ["registry1的IP地址:端口号","registry2的IP地址:端口号"]
}
修改好以后
systemctl daemon-reload
systemctl restart docker.service
systemctl enable docker.service
上传镜像
要上传镜像到私有仓库,需要在镜像的 tag 上加入仓库地址:
docker tag jboss 192.168.88.85:5000/jboss:v1
docker push 192.168.88.85:5000/jboss:v1
拉取镜像
docker pull 192.168.88.85:5000/jboss:v1
查看私库镜像
curl http://192.168.88.85:5000/v2/_catalog
查询指定标签所有镜像 curl -XGET http://{registry}/v2/{name}/tags/list curl -XGET http://192.168.88.85:5000/v2/zkui-master/tags/list 查看某个镜像的sha256值:curl -v --silent "{registry}/v2/{name}/manifests/{tag}" 2>&1 | grep Docker-Content-Digest | awk '{print ($3)}' curl -v --silent "192.168.88.85:5000/v2/zkui-master/manifests/latest" 2>&1 | grep Docker-Content-Digest | awk '{print ($3)}' 删除url curl -I -X DELETE http://{registry}/v2/{name}/manifests/sha256:{sha256} curl -I -X DELETE http://192.168.88.85:5000/v2/zkui-master/manifests/sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a
镜像查看