docker - 仓库篇


创建私有仓库

docker pull registry

运行私有仓库

# docker内/var/lib/registry/, 挂载到宿主机/docker_registry/

docker run -d -p 5000:5000 -v /docker_registry/:/var/lib/registry/ --name registry registry

操作

上传

# 本地镜像打tag
# 语法: docker tag src_image[:version] [registry-host]:[port]/dst_image
docker tag mynginx:v0.0.1 127.0.0.1:5000/mynginx

# 上传
docker push 127.0.0.1:5000/mynginx

# 如果报错 http: server gave HTTP response to HTTPS client
# 在/etc/docker/daemon.json添加, 然后重启服务
"insecure-registries":["172.17.168.23:5000"]

下载

docker push [tag_name]

查看

# 查看
curl 127.0.0.1:5000/v2/_catalog
''' 结果为: {"repositories":[mynginx]} 说明上传成功 '''

# 列出镜像标签
curl 127.0.0.1:5000/v2/mynginx/tags/list
''' {"name":"mynginx","tags":["latest"]} '''

删除

# 获取digest
curl -I 127.0.0.1:5000/v2/mynginx/manifests/v0.0.1
# 2.4版本后需要添加head头
curl --header "Accept: application/vnd.docker.distribution.manifest.v2+json"  -I 127.0.0.1:5000/v2/mynginx/manifests/v0.0.1

'''
结果如下:
HTTP/1.1 200 OK
Content-Length: 948
Content-Type: application/vnd.docker.distribution.manifest.v2+json
Docker-Content-Digest: sha256:dabecc7dece2fff98fb00add2f0b525b7cd4a2cacddcc27ea4a15a7922ea47ea
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:dabecc7dece2fff98fb00add2f0b525b7cd4a2cacddcc27ea4a15a7922ea47ea"
X-Content-Type-Options: nosniff
Date: Wed, 10 Apr 2019 02:26:35 GMT
'''

# 根据结果中Etag删除镜像
curl -X DELETE 127.0.0.1:5000/v2/mynginx/manifests/sha256:dabecc7dece2fff98fb00add2f0b525b7cd4a2cacddcc27ea4a15a7922ea47ea
'''
结果有报错, 未删除成功
{"errors":[{"code":"UNSUPPORTED","message":"The operation is unsupported."}]}
'''

第三方删除工具

# 下载工具
curl https://raw.githubusercontent.com/burnettk/delete-docker-registry-image/master/delete_docker_registry_image.py | sudo tee /usr/local/bin/delete_docker_registry_image >/dev/null

# 增加执行权限
chmod +x /usr/local/bin/delete_docker_registry_image

# 查找镜像存储目录
find / -name registry
'''
/home/bypic/go/src/cmd/vendor/golang.org/x/sys/windows/registry
/home/bypic/go/src/internal/syscall/windows/registry
/var/lib/docker/volumes/26bbc79337963c17e46cd252245e1f37155d3b53aae7154e54f1d8485ec92e54/_data/docker/registry
/var/lib/docker/volumes/4156a38193a183a0f2a530a63fd700244b74329352b609c02efe6f5e1b7a4ae9/_data/docker/registry
/var/lib/docker/overlay2/aece0df58b6455b34b9593ba2657954d2e209dee56d74aa927b82c56dfa0dc92/diff/var/lib/registry
/var/lib/docker/overlay2/aece0df58b6455b34b9593ba2657954d2e209dee56d74aa927b82c56dfa0dc92/merged/var/lib/registry
/var/lib/docker/overlay2/aece0df58b6455b34b9593ba2657954d2e209dee56d74aa927b82c56dfa0dc92/merged/bin/registry
/var/lib/docker/overlay2/aece0df58b6455b34b9593ba2657954d2e209dee56d74aa927b82c56dfa0dc92/merged/etc/docker/registry
/var/lib/docker/overlay2/b6b4667747977ba067fe5645f1f54b866211e228144f6e5edbed5fc52f4050af/diff/etc/docker/registry
/var/lib/docker/overlay2/371723b50a85c354df44af923f94353ed0690ba3499a8ea653a176cf35cec077/diff/var/lib/ucf/registry
/var/lib/docker/overlay2/02d9926fe425e923a036a66952fa76b420b5cac9ca4b583ff53f84fd2276846d/diff/bin/registry
'''

# 找到带_data的目录, 然后进入它下边的v2目录, 将该路径复制给工具中registry_data_dir变量
/var/lib/docker/volumes/26bbc79337963c17e46cd252245e1f37155d3b53aae7154e54f1d8485ec92e54/_data/docker/registry/v2

# 执行删除命令
/usr/local/bin/delete_docker_registry_image --image mynginx:v0.0.1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值