2023-08-24:Docker仓库
1、仓库
仓库(Repository)是存储和分发Docker镜像的地方。
Docker Hub的命名来自于GitHub,后者是我们常用的代码存储、分发的地方。
Registry(注册服务器)与Repository(仓库)
- Registry是存放仓库的实际服务器,Repository是一个具体的项目或者目录;
- 一个服务器中可以有多个仓库,一个仓库中可以有多个镜像。
例如某个镜像地址是docker.io/centos,这里的docker.io是注册服务器,centos是仓库名。它们之间的关系如下图:
仓库有公共镜像仓库、私有镜像仓库之分。
2、公共镜像仓库
一般是Docker官方或者其他第三方组织(阿里云、腾讯云、网易云等)提供的,允许所有人注册和使用的镜像仓库。
Docker Hub是全球最大的镜像市场,这些镜像主要来自软件提供商、开源组织、社区。大部分的OS、软件镜像都可以直接在Docker Hub下载并使用。
创建仓库
首先要有一个Docker Hub账号,之后点击Create Repository,新建一个仓库用于推送镜像:
这里展示了在账号lagoudocker中,创建了一个名为busybox的仓库,创建好仓库后我们就能推送本地镜像到这个仓库了。
过程:
拉取bushybox镜像
docker pull busybox
登录
在推送(上传)镜像之前,我们要先用docker login登录一下镜像服务器,因为只有登录的用户才能推送镜像到仓库:
docker login Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. Username: lagoudocker Password: Login Succeeded
使用docker login命令登录镜像服务器,这时Docker会要求我们输入用户名和密码,输入刚刚登录Docker Hub时的账号密码,看到Login Succeeded表示登录成功。登录成功后就能推送镜像到自己创建的仓库了。
补充
docker login会默认请求Docker Hub,如果你想登录第三方镜像仓库或者自建的镜像仓库,在docker login后加上注册服务器即可。例如我们想登录阿里云镜像服务器,则用docker login registry.cn-beijing.aliyuncs.com,输入阿里云镜像服务的用户名密码即可。
重命名镜像
在本地镜像推送到自定义仓库前,我们要把镜像“重命名”以下,才能正确推送到自己创建的镜像仓库中:
docker tag busybox lagoudocker/busybox
推送
镜像重命名之后,再用docker push就能推送镜像到自己创建的仓库中了。
docker push lagoudocker/busybox
之后,busybox这个镜像就被推送到自定义的镜像仓库了。这里我们也可以新建其他的镜像仓库,然后把自己构建的镜像推送到仓库中。
有时,出于安全/保密的需求,我们可能需要构建一个私有的镜像仓库。
3、搭建私有仓库
略
具体可去05 仓库访问:怎样搭建属于你的私有仓库?自行查看。