Update Docker Registry

pull/267/head
khs1994 2017-11-30 16:59:04 +08:00
parent d8e71510f7
commit a3d9d9382f
2 changed files with 34 additions and 4 deletions

View File

@ -22,7 +22,7 @@ Docker Registry 公开服务是开放给用户使用、允许用户管理镜像
### 私有 Docker Registry ### 私有 Docker Registry
除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 [Docker Registry 镜像](https://store.docker.com/images/registry/),可以直接使用做为私有 Registry 服务。在 [私有仓库](../repository/registry.md) 一节中,会有进一步的搭建私有 Registry 服务的讲解。 除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 [Docker Registry](https://store.docker.com/images/registry/) 镜像,可以直接使用做为私有 Registry 服务。在 [私有仓库](../repository/registry.md) 一节中,会有进一步的搭建私有 Registry 服务的讲解。
开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。 开源的 Docker Registry 镜像只提供了 [Docker Registry API](https://docs.docker.com/registry/spec/api/) 的服务端实现,足以支持 `docker` 命令,不影响使用。但不包含图形界面,以及镜像维护、用户管理、访问控制等高级功能。在官方的商业化版本 [Docker Trusted Registry](https://docs.docker.com/datacenter/dtr/2.0/) 中,提供了这些高级功能。

View File

@ -4,7 +4,7 @@
本节介绍如何使用本地仓库。 本节介绍如何使用本地仓库。
`docker-registry` 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 `docker-registry` v2 [`docker-registry`](https://docs.docker.com/registry/) 是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于 [`docker-registry`](https://github.com/docker/distribution) v2.x 版本
### 安装运行 docker-registry ### 安装运行 docker-registry
@ -16,7 +16,7 @@
$ docker run -d -p 5000:5000 --restart=always --name registry registry $ docker run -d -p 5000:5000 --restart=always --name registry registry
``` ```
这将使用官方的 registry 镜像来启动本地的私有仓库。默认情况下,仓库会被创建在容器的 `/var/lib/registry ` 下。可以通过 `-v` 参数来将镜像文件存放在本地的指定路径。例如下面的例子将上传的镜像放到本地的 `/opt/data/registry` 目录。 这将使用官方的 `registry` 镜像来启动私有仓库。默认情况下,仓库会被创建在容器的 `/var/lib/registry` 目录下。可以通过 `-v` 参数来将镜像文件存放在本地的指定路径。例如下面的例子将上传的镜像放到本地的 `/opt/data/registry` 目录。
```bash ```bash
$ docker run -d \ $ docker run -d \
@ -70,7 +70,7 @@ $ curl 127.0.0.1:5000/v2/_catalog
这里可以看到 `{"repositories":["ubuntu"]}`,表明镜像已经被成功上传了。 这里可以看到 `{"repositories":["ubuntu"]}`,表明镜像已经被成功上传了。
先删除已有镜像,再尝试下载这个镜像。 先删除已有镜像,再尝试从私有仓库中下载这个镜像。
```bash ```bash
$ docker rmi 127.0.0.1:5000/ubuntu:latest $ docker rmi 127.0.0.1:5000/ubuntu:latest
@ -88,3 +88,33 @@ $ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
``` ```
### 注意事项
如果你不想使用 `127.0.0.1:5000` 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 `192.168.199.100:5000` 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。
这是因为 Docker 默认不允许非 `HTTPS` 方式推送镜像。我们可以通过 Docker 配置来取消这个限制,或者配置能够通过 `HTTPS` 访问的私有仓库。
#### Ubuntu 14.04, Debian 7 Wheezy
对于使用 `upstart` 的系统而言,编辑 `/etc/default/docker` 文件,在其中的 `DOCKER_OPTS` 中增加如下内容:
```bash
DOCKER_OPTS="--insecure-registries=http://192.168.199.100:5000"
```
#### Ubuntu 16.04+, Debian 8+, centos 7
对于使用 `systemd` 的系统,请在 `/etc/docker/daemon.json` 中写入如下内容(如果文件不存在请新建该文件)
```json
{
"insecure-registries": [
"192.168.199.100:5000"
]
}
```
### 其他
对于 Docker for Windows 、 Docker for Mac 在设置中编辑 `daemon.json` 增加和上边一样的字符串即可。