Docker私有仓库

在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。

在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。这一篇介绍registry、harbor两种私有仓库搭建。

一、registry 的搭建

1、搭建

  • Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。
docker pull registry:2

客快物流大数据项目(十八):Docker私有仓库_nginx

客快物流大数据项目(十八):Docker私有仓库_私有仓库_02客快物流大数据项目(十八):Docker私有仓库_docker_03

docker run -di -v /opt/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2

客快物流大数据项目(十八):Docker私有仓库_私有仓库_04

客快物流大数据项目(十八):Docker私有仓库_nginx_05客快物流大数据项目(十八):Docker私有仓库_私有仓库_06

 Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录了。

浏览器访问​​http://node1:5000/v2/_catalog​​,出现下面情况说明registry运行正常。

客快物流大数据项目(十八):Docker私有仓库_私有仓库_07客快物流大数据项目(十八):Docker私有仓库_nginx_08

2、验证

现在通过push镜像到registry来验证一下。

  • 查看本地镜像:

客快物流大数据项目(十八):Docker私有仓库_docker_09客快物流大数据项目(十八):Docker私有仓库_nginx_10

  • 要通过docker tag将该镜像标志为要推送到私有仓库:
docker tag nginx:latest localhost:5000/nginx:latest

客快物流大数据项目(十八):Docker私有仓库_私有仓库_11

客快物流大数据项目(十八):Docker私有仓库_私有仓库_12客快物流大数据项目(十八):Docker私有仓库_nginx_13​编辑

  • 通过 docker push 命令将 nginx 镜像 push到私有仓库中:
docker push localhost:5000/nginx:latest

客快物流大数据项目(十八):Docker私有仓库_nginx_14

客快物流大数据项目(十八):Docker私有仓库_nginx_15

  • 下载私有仓库的镜像,使用如下命令:
docker pull localhost:5000/镜像名:版本号 
# 例如
docker pull localhost:5000/nginx:latest

客快物流大数据项目(十八):Docker私有仓库_nginx_16

二、docker镜像推送到阿里云镜像仓库

首先需要有一个阿里云的账号

镜像仓库申请地址:​阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台​

客快物流大数据项目(十八):Docker私有仓库_docker_17客快物流大数据项目(十八):Docker私有仓库_nginx_18

 客快物流大数据项目(十八):Docker私有仓库_nginx_19客快物流大数据项目(十八):Docker私有仓库_nginx_20

1、容器镜像服务控制台概览

客快物流大数据项目(十八):Docker私有仓库_docker_21客快物流大数据项目(十八):Docker私有仓库_私有仓库_22

2、创建镜像仓库

客快物流大数据项目(十八):Docker私有仓库_docker_23客快物流大数据项目(十八):Docker私有仓库_nginx_24

3、选择本地仓库

客快物流大数据项目(十八):Docker私有仓库_nginx_25客快物流大数据项目(十八):Docker私有仓库_私有仓库_26

4、点击管理 

客快物流大数据项目(十八):Docker私有仓库_docker_27客快物流大数据项目(十八):Docker私有仓库_docker_28

客快物流大数据项目(十八):Docker私有仓库_nginx_29客快物流大数据项目(十八):Docker私有仓库_docker_30

5、Docker登录阿里云容器镜像仓库

sudo docker login --username=xxx@aliyun.com registry.cn-hangzhou.aliyuncs.com

客快物流大数据项目(十八):Docker私有仓库_docker_31

客快物流大数据项目(十八):Docker私有仓库_docker_32客快物流大数据项目(十八):Docker私有仓库_nginx_33

6、推送创建的lanson-docker镜像到阿里云镜像仓库

参考如下的命令

docker login --username=38023****@qq.com registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lanson-docker/repositories:[镜像版本号]
docker push registry.cn-hangzhou.aliyuncs.com/lanson-docker/repositories:[镜像版本号]

客快物流大数据项目(十八):Docker私有仓库_私有仓库_34

 客快物流大数据项目(十八):Docker私有仓库_私有仓库_35客快物流大数据项目(十八):Docker私有仓库_docker_36

客快物流大数据项目(十八):Docker私有仓库_nginx_37客快物流大数据项目(十八):Docker私有仓库_docker_38