仓库( Repository)是集中存放镜像的地方,又分公共仓库和私有仓库 。
有时候容易把仓库与注册服务器( Registory)混淆 。 实际上注册服务器是存放仓库的具体服务器, 一个注册服务器上可以有多个仓库,而每个仓库下面可以有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。
Docker Hub 公共镜像市场
Docker Hub 是 Docker 官方提供的最大的公共镜像仓库,目前包括了超过 100 000 的镜像,地址为 https://hub.docker.com
。
1. 登录
可以通过命令行执行 docker login
命令来输入用户名 、 密码和邮箱来完成注册和登录。 注册成功后,本地用户目录下会自动创建 .docker/config.json 文件,保存用户的认证信息 。
登录成功的用户可以上传个人制作的镜像到 Docker Hub 。
2. 基本操作
用户无须登录即可通过 docker search 命令来查找官方仓库中的镜像,并利用 docker [image ] pull
命令来将它下载到本地 。
根据是否为官方提供,可将这些镜像资源分为两类:
- 一种是类似于 centos 这样的基础镜像,也称为根镜像。 这些镜像是由 Docker 公司创建、验证、支持、提供 ,这样的镜像往往使用单个单词作为名字;
- 另一种类型的镜像,比如 ansible/centos7-ansible 镜像,是由 Docker 用户ansible 创建并维护的,带有用户名称为前缀,表明是某用户下的某仓库。可以通过用户名称前缀“ user name/镜像名”来指定使用某个用户提供的镜像 。
用户也可以在登录后通过 docker push 命令来将本地镜像推送到 Docker Hub。
3.自动创建
自动创建( Automated Builds)是 Docker Hub 提供的自动化服务,这一功能可以自动跟随项目代码的变更而重新构建镜像 。
要配置自动创建,包括如下的步骤:
- 创建并登录 Docker Hub ,以及目标网站如 Github;
- 在目标网站中允许 Docker Hub 访问服务;
- 在 Docker Hub 中配置一个“自动创建”类型的项目;
- 选取一个目标网站中的项目(需要含 Dockerfile )和分支;
- 指定 Dockerfile 的位置,并提交创建。
之后,可以在 Docker Hub 的“自动创建”页面中跟踪每次创建的状态 。
2. 第三方镜像市场
1 查看镜像
访问 https://hub.tenxcloud.com ,即可看到己存在的仓库和存储的镜像,包括 Ubuntu、Java、 Mongo、 MySQL、 Nginx等热 门仓库和镜像 。 时速云官方仓库中的镜像会保持与DockerHub 中官方镜像的同步 。
2. 下载镜像
下载镜像也是使用 docker pull
命令,但是要在镜像名称前添加注册服务器的具体地址 。 格式为 index.tenxcloud.com/<namespace>/<repository>:<tag>
。
例如,要下载 Docker 官方仓库中的 node:latest 镜像,可以使用如下命令 :
$ docker pull index.tenxcloud.com/docker_library/node:latest
3. 搭建本地私有仓库
使用 registry 镜像创建私高仓库
安装 Docker 后 , 可以通过官方提供的 registry 镜像来简单搭建一套本地私有仓库环境:
$ docker run -d -p 5000:5000 registry:2
这将自动下载井启动一个 registry容器,创建本地的私有仓库服务。
默认情况下,仓库会被创建在容器的/var/lib/registry目录下 。 可以通过 - v 参数来将镜
像文件存放在本地的指定路径 。 例如下面的例子将上传的镜像放到/opt/data/registry 目录:
$ docker run -d -p 5000 5000 -v /opt/data/registry:/var/l ib/registry registry:2
此时, 在本地将启动一个私有仓库服务,监听端口为 5000 。
仓库是集中维护容器镜像的地方,为 Docker 镜像文件的分发和管理提供了便捷的途径 。