学习Docker(2017-10-6)

来源:互联网 发布:查看手机支持网络制式 编辑:程序博客网 时间:2024/06/15 07:37

本节目录:
1. 访问仓库
- Docker Hub
- 私有仓库
- 仓库配置文件

访问仓库

仓库是集中存放镜像的地方。Registry 注册服务器是管理仓库的具体服务器,每个服务器上面有很多个仓库,每个仓库对应有许多镜像。从这方面来说,仓库可以被认为是一个具体的项目或者目录。需要我们对注册服务器做区分。

Docker Hub

Docker Hub 是官方维护的公共仓库 Docker Hub ,其中已经包括了超过 15,000 的镜像。大部分都可以从 Docker Hub 中下载镜像来实现。

登录

基本操作

用户无需登录即可通过在 docker search查找官方仓库中的镜像,docker pull来下载到本地

实例:

docker search centos


docker search + 搜索的关键词,其中我们可以看出,搜索出来的字段,包括镜像名称,描述,星级,是否官方创建、是否自动创建。
1. 名称:一般官方创建、维护、支持的镜像都是单个单词作为名字。用户创建的镜像一般名称格式 username/
2. 描述:对镜像的说明
3. 星级:表示该用户的受欢迎程度

-s N 参数可以在查找中指定显示 N 星以上的镜像(新版本推荐filter=starts=N 参数)

方式 1:

方式 2:

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

自动创建
Automated Builds 自动创建功能对于需要经常升级镜像的程序来说,十分方便。自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(支持 GitHub 和 BitBucket )上的项目,一旦项目发生新的提交,则自动执行创建。

操作:
1. 登录 Docker Hub ,以及目标网站;
2. 在目标网站中连接到 Docker Hub;
3. Docker Hub 中配置一个自动创建

  1. 选取一个目标网站中的项目(需要含 Dockerfile)
    和分支; 指定 Dockerfile 的位置,并提交创建
  2. 在 Docker Hub 自动创建页面跟踪每次创建的状态

私有仓库

有时候使用 Docker Hub 不方便,用户可以创建一个本地仓库供私人使用。
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库

安装运行docker-registry

容器运行

docker run -d -p 5000:5000 registry

使用官方的 registry 镜像来启动本地的私有仓库

默认情况下,仓库会被创建在容器的 /var/lib/registry 下。可以通过 -v 参数来将镜像文件存放在本地的指定路径。下面将上传的镜像放到 /opt/data/registry 目录

docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry

Docker私有仓库Registry的搭建验证
搭建docker本地镜像仓库

在私有仓库上传、下载、搜索镜像

创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送到仓库里,别的机器就可以下载

  1. docker images 查看已有的镜像
  2. docker tag 将 deal194 标记为 127.0.0.1:5000/test

(格式:docker tag images[:tag][registryhost/][username/name[:tag])

  • docker push 127.0.0.1:5000/test 使用 push 上传标记的镜像

  • curl 查看仓库中的镜像

仓库配置文件

Docker 的 Registry 利用配置文件提供了一些仓库的模板,用户直接使用它们来进行开发或生产部署

模板
在 config_sample.yml 文件中,可以看到一些模板段:

common :基础配置local :存储数据到本地文件系统s3 :存储数据到 AWS S3 中dev :使用 local 模板的基本配置test :单元测试使用prod :生产环境配置(基本上跟s3配置类似)gcs :存储数据到 Google 的云存储swift :存储数据到 OpenStack Swift 服务glance :存储数据到 OpenStack Glance 服务,本地文件系统为后备glance-swift :存储数据到 OpenStack Glance 服务,Swift 为后备elliptics :存储数据到 Elliptics key/value 存储

用户也可以添加自定义的模板段: