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.1log: fields: service: registrystorage: delete: enabled: true cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registryhttp: 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.serviceExecStart=/usr/bin/dockerd --insecure-registry 172.0.0.10:5000systemctl daemon-reloadsystemctl 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:latestdocker 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/currentsha256:0599d30a8dc59cb316f8024db1490fa38aa7f98739d73afb28eb6f1d1655bb46[root@vm03 current]# pwd复制代码
- 删除镜像对应的API如下
DELETE /v2//manifests/ 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 参考
© 会煮咖啡的猫咪