官方文档
https://docs.docker.com/registry/deploying/
注册本地源,且可以访问
docker run -d -p 4000:5000 -v /opt/registry:/var/lib/registry --restart=always --name registry-srv registry:2
docker run -d -it -p 8080:8080 --restart=always --name registry-web --link registry-srv -e REGISTRY_URL=http://registry-srv:5000/v2 -e REGISTRY_NAME=localhost:4000 hyper/docker-registry-web
访问地址: http://localhost:8080
从默认的docker hub下载镜像
docker pull ubuntu:16.04
给镜像打上tag: localhost:4000/my-ubunbtu。这个操作是给已经存在的镜像打了一个tag。tag的前缀是本地仓库地址
docker tag ubuntu:16.04 localhost:4000/my-ubuntu
推送镜像到本地仓库
docker push localhost:4000/my-ubuntu
删除本机镜像
docker image remove ubuntu:16.04
docker image remove localhost:5000/my-ubuntu
从本地仓库拉取镜像
docker pull localhost:4000/my-ubuntu
删除本地仓库中的镜像
1,手动通过curl删除,需要查询id,比较麻烦
curl -I -X DELETE http://IP:PORT/v2/YourImagesName/manifests/ID
2,通过第三方工具删除
参考:https://github.com/burnettk/delete-docker-registry-image
- 2.1 下载安装
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
sudo chmod a+x /usr/local/bin/delete_docker_registry_image
- 2.2 导入环境变量,
REGISTRY_DATA_DIR这个值是根据前面启动registry容器时候指定的
export REGISTRY_DATA_DIR=/opt/registry/docker/registry/v2
export PATH=$PATH:
/usr/local/bin
- 2.3 删除镜像
dry-run删除
delete_docker_registry_image --image my-centos --dry-run
完全删除(先必须关闭registry)
delete_docker_registry_image --image my-centos
删除其中一个tag
delete_docker_registry_image --image my-centos:supertag
访问私有的Docker仓库
编辑 /usr/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.27.10:4000