使用 Docker Compose 搭建 Registry 镜像管理平台及使用配置

Posted by 彭超 on 2019-10-08
Estimated Reading Time 2 Minutes
Words 533 In Total
Viewed Times

Docker Registry 简介

Docker Hub 是 Docker 官方提供的一个管理公共镜像的镜像仓库,我们可以从上面拉取我们想要的镜像,也可以推送自己的镜像上去。但有时候,在无法访问互联网的情况下或者不希望将自己的镜像推送到公网上时,那么 Docker Registry (镜像私服)就可以用来存储管理自己的镜像。

安装 Docker Registry

创建 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
version: '3.1'
services:
registry:
image: registry
restart: always
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry

启动 docker compose

1
$ docker-compose up -d

访问:http://{ip}:5000/v2/

安装 Docker Registry UI

Docker Registry 安装成功之后,不太方便只管地查看仓库中的镜像,可以使用 Web UI 界面工具管理镜像,docker-registry-frontend 就是其中之一

创建 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
version: '3.1'
services:
frontend:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
volumes:
- ./certs/frontend.crt:/etc/apache2/server.crt:ro
- ./certs/frontend.key:/etc/apache2/server.key:ro
environment:
- ENV_DOCKER_REGISTRY_HOST={docker registy ip}
- ENV_DOCKER_REGISTRY_PORT={docker registy port}

上述文件需要修改的配置:

  • ENV_DOCKER_REGISTRY_HOST:安装的 Docker Registry 访问 IP

  • ENV_DOCKER_REGISTRY_PORT:安装的 Docker Registry 访问端口

启动 Docker Ccompose

1
$ docker-compose up -d

访问 http://{ip}:8080

  • 首页
  • 镜像列表页

Linux 配置 Docker Registry

Registry 服务启动以后还需要以下配置:

  • 编辑 daemon.json (如果不存在则新建)

    1
    $ vi /etc/docker/daemon.json
  • 完整文件如下:

    1
    2
    3
    4
    5
    6
    7
    8
    {
    "registry-mirrors": [
    "{镜像加速器地址}"
    ],
    "insecure-registries": [
    "{docker registry ip}:5000"
    ]
    }
  • 重启服务

    1
    $ sudo systemctl daemon-reload
    1
    $ sudo systemctl restart docker
  • 检查配置是否生效

    1
    $ docker info
  • 出现以下内容,说明配置成功

    1
    2
    3
    Insecure Registries:
    {docker registry ip}:5000
    127.0.0.0/8

测试推送镜像

从 Docker Hub 公网拉取一个镜像

1
$ docker pull tomcat

标记该镜像指向Docker Registry 私服仓库

1
$ docker tag tomcat {docker registry ip}:5000/tomcat

推送镜像到仓库

1
$ docker push {docker registry ip}:5000/tomcat

测试拉取镜像

删除从 Docker Hub 公网上拉取的镜像

1
$ docker image rm {docker registry ip}:5000/tomcat

从 Docker Registry 私服中拉取镜像

1
$ docker pull {docker registry ip}:5000/tomcat

If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !