仓库:是存储和分发镜像的地方,分为公共镜像仓库和私有镜像仓库
注册服务器、仓库、镜像之间的关系
注册服务器是存放仓库的实际服务器,而仓库则可以被理解为一个具体的项目或者目录;注册服务器可以包含很多个仓库,每个仓库又可以包含多个镜像。例如我的镜像地址为 docker.io/centos,docker.io 是注册服务器,centos 是仓库名
1、官网https://hub.docker.com/注册账号后
2、通过docker login命令镜像仓库
docker login命令默认会登录Docker Hub镜像仓库,如果想登录其他第三方或者自建的镜像仓库,后面加上注册服务器即可
3、通过docker tag命令重命名仓库
docker tag busybox canghai123qwer/busybox,注意名称格式:账号/镜像名称,否则会出现“denied: requested access to the resource is denied”错误
4、通过docker pull命令可拉取上面创建的镜像
1、启动本地仓库
docker run -d -p 5000:5000 --name registry registry:2.7
2、重命名镜像后推送到本地镜像仓库
3、删除已有的localhost:5000/busybox镜像后,通过docker pull命令拉取本地镜像
4、镜像持久化存储
docker run -v /var/lib/registry/data:/var/lib/registry -d -p 5000:5000 --name registry registry:2.7
要构建一个支持 HTTPS 访问的安全镜像仓库,需要满足以下两个条件:
拥有一个合法的域名,并且可以正确解析到镜像服务器;
从证书颁发机构(CA)获取一个证书。
通过如下命令启动镜像仓库
docker run -d --name registry -v "/var/lib/registry/data:/var/lib/registry -v "/var/lib/registry/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/regisry.lagoudocker.io.crt -e REGISTRY_HTTP_TLS_KEY=/certs/regisry.lagoudocker.io.key -p 443:443 registry:2.7
其中,使用 -v 参数把镜像数据持久化在/var/lib/registry/data
目录中,同时把主机上的证书文件挂载到了容器的 /certs 目录下,同时通过 -e 参数设置 HTTPS 相关的环境变量参数,最后让仓库在主机上监听 443 端口
启动后,可以通过docker push命令远程推送镜像
docker tag busybox regisry.lagoudocker.io/busybox
docker push regisry.lagoudocker.io/busybox
原文:https://www.cnblogs.com/Xiaojiangzi/p/13673006.html