1. Docker Hub
我们从Docker hub拉取镜像,
我们也可以拉取镜像
首先我们有dockerhub账号
要求
我们镜像tag的格式需要是你Dockerhub的id/镜像名字
例如我的就是 sixmillions/centos-vim
上传镜像
用到命令是 docker image push 可以简写成 docker push 
提示告诉我们怎用了.
但是我们首先要登录dockerhub
docker login# 输入用户名和密码# push 镜像docker push sixmillions/hello

查看
谁需要拉取这个镜像的时候就直接
docker pull sixmillios/hello
关联github
上面我们直接上传镜像,别人会觉得有病毒,也不知道你是怎么构建的.
所以我们可以关联github,将构建镜像的Dockerfile上传到github,
dockerhub绑定了github后,dockerhub会根据我们的dockerfile帮我们构建.我们只需要维护dockerfile就可以了.
具体不演示了.
2. 搭建私有的仓库
获取镜像
docker pull registry
创建仓库
# 创建映射路径
mkdir -p /sixmillions/registry
# 运行容器
docker run -d -v /sixmillions/registry:/var/lib/registry \
-p 5000:5000 --restart=always --privileged=true --name registry \
registry:latest

上传
docker tag centos 122.112.140.159:5000/centos:latest
docker push 122.112.140.159:5000/centos:latest
抱错
The push refers to repository [122.112.140.159:5000/centos]
Get https://122.112.140.159:5000/v2/: http: server gave HTTP response to HTTPS client

原因,默认是https.
修改master节点
修改https
vi /etc/docker/daemon.json
# 添加
"insecure-registries":["122.112.140.159:5000"]

重启
systemctl daemon-reload
systemctl restart docker
再上传
docker push 122.112.140.159:5000/centos:latest
查看
curl http://122.112.140.159:5000/v2/_catalog
ls /sixmillions/registry/docker/registry/v2/repositories


下载镜像
docker pull 122.112.140.159:5000/centos:latest
# 如果忘记版本就用下面命令查看
curl 122.112.140.159:5000/v2/centos/tags/list
删除私有仓库镜像
下载脚本
# 下载脚本
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 755 /usr/local/bin/delete_docker_registry_image
设置仓库
根据自己实际情况设置私有仓库的路径的环境变量
export REGISTRY_DATA_DIR=/sixmillions/registry/docker/registry/v2
删除私有仓库镜像
### 检查会删除那些数据
delete_docker_registry_image --image centos --dry-run
### 硬删除(建议先关闭私有仓库)
docker stop registry
delete_docker_registry_image --image centos
docker start registry
### 删除镜像tag
delete_docker_registry_image --image centos:latest
