一、简介
1、Docker仓库就是存放docker镜像并有docker pull方法下载的云环境
2、Docker仓库分为公有仓库和私有仓库
①公有仓库指Docker Hub(官方)等开放给用户使用、允许用户管理镜像
②私有仓库指由用户自行搭建的存放镜像的云环境
二、Docker私有仓库搭建
1、搭建无认证私有仓库
①在需要搭建仓库的服务器上安装docker
②在服务器上,从docker hub下载registry仓库:docker pull registry
③在服务器上,启动仓库:docker run -d -ti --restart always --name my-registry -p 8000:5000 -v /my-registry/registry:/var/lib/registry registry
④、本地查看当前仓库中的存放的镜像列表:curl 服务器IP:8000/v2/_catalog
⑤、注意:registry内部对外开放端口是5000,默认情况下,会镜像存放于容器内的/var/lib/registry(官网Dockerfile中查看)目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失
2、私有仓库上传、下载镜像
①利用docker tag重命名需要上传的镜像:docker tag IMAGE 服务器IP:端口/IMAGE_NAME
②利用docker push上传刚刚重命名的镜像:docker push 服务器IP:端口/centos
③必须重命名为服务器IP:端口/IMAGE_NAME
④如果push出现了类似https的错误那么需要往配置文件/etc/docker/daemon.json里添加:”insecure-registries”:[“服务器IP:端口”],然后重启docker
3、搭建带认证的私有仓库
①在服务器上删除先前创建的无认证的仓库容器:docker rm -f my-registry
②创建存放认证用户名和密码的文件:mkdir /my-registry/auth -p
③创建密码验证文件,注意要将USERNAME和PASSWORD替换为设置的用户名和密码:docker run --entrypoint htpasswd registry -Bbn USERNAME PASSWORD > /my-registry/auth/htpasswd
④重新启动仓库镜像:docker run -d -p 8000:5000 --restart=always --name docker-registry -v /my-registry/registry:/var/lib/registry -v /my-registry/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
4、带认证的私有仓库上传、下载镜像
①在本地机器上首先登录到服务器:docker login -u username -p password 47.94.153.230:8000
②然后执行pull或者push命令
③操作完毕后,可以退出登录:docker logout 47.94.153.230:8000
④如果想查看仓库中已有的镜像,那么需要进行http验证才可以,可以直接借助浏览器访问47.94.153.230:8000/v2/_catalog就可以访问了