docker 私仓建设 Registry + Portainer
环境说明
-
服务器
- centos 7.4
- ip 172.0.0.10
-
客户端
- centos 7.4
- macos
- windows
1 服务端
1.1 运行 registry
服务
docker run -d -p 5000:5000 --restart always \
-v /root/docker-registry/data/registry:/var/lib/registry \
-v /root/docker-registry/config.yml:/etc/docker/registry/config.yml \
--name my-registry registry:latest
2.1 修改配置 config.yml
version: 0.1
log:
fields:
service: registry
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
2 客户端
2.1 改仓库地址
- centos
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry 172.0.0.10:5000
systemctl daemon-reload
systemctl restart docker
- macos
2.2 打包上传
docker build -t 172.17.0.10:5000/my-app:1.0.1 .
docker push 172.17.0.10:5000/my-app:1.0.1
- 修改
tag
服务器上保留一个latest
版本
docker tag 172.17.0.10:5000/my-app:1.0.1 172.17.0.10:5000/my-app:latest
docker push 172.17.0.10:5000/my-app:latest
-
查看
- 镜像列表
http://172.17.0.10:5000/v2/_catalog
- 镜像详情
http://172.17.0.10:5000/v2/image_name/tags/list
- 镜像列表
2.3 下拉镜像
docker pull 172.17.0.10:5000/my-app:1.0.1
2.4 删除镜像
- 镜像位置、sha256
cat /root/docker-registry/data/registry/docker/registry/v2/repositories/my-app/_manifests/tags/1.0.1/current
sha256:0599d30a8dc59cb316f8024db1490fa38aa7f98739d73afb28eb6f1d1655bb46[root@vm03 current]# pwd
- 删除镜像对应的API如下
DELETE /v2/<name>/manifests/<reference>
name:镜像名称
reference: 镜像对应sha256值
curl -I -X DELETE http://172.17.0.10:5000/v2/my-app/manifests/sha256:6a67ba482a8dd4f8143ac96b1dcffa5e45af95b8d3e37aeba72401a5afd7ab8e
- 查看数据大小
docker exec -it f70d0c79e6d546d4 sh
~ # du -chs /var/lib/registry/
182.4M /var/lib/registry/
182.4M total
- 进行容器执行垃圾回收命令
registry garbage-collect /etc/docker/registry/config.yml
- 批量删除镜像
docker rmi -f $(docker images | grep my-app)
3 可视化工具 Portainer
3.1 运行服务
docker run -d -p 9100:9000 \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
--name prtainer-local \
portainer/portainer
3.2 主界面
3.3 容器管理界面
3.4 镜像列表
3.5 网络列表
4 参考
© 会煮咖啡的猫咪
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。