当前位置:   article > 正文

搭建docker私服镜像中心docker-registry和docker-registry-web_docker-compose 创建web版registry

docker-compose 创建web版registry

一、目标

  1. 搭建一个私服docker镜像中心,并且需要安全认证和后台管理。

二、拉取镜像

docker pull hyper/docker-registry-web docker pull registry

三、安装docker-compose

yum install docker-compose

四、创建镜像中心

  1. 下载并解压(github国内比较慢,如果下载失败的话,多尝试几次)

    curl -Ls https://github.com/mkuchin/docker-registry-web/releases/download/v0.1.2/examples.tar.gz | tar -xzv
  2. 切换到目录

cd examples/auth-enabled/

3.使用脚本生成私钥和自签名证书:

./generate-keys.sh

 

 

4.修改配置,进入conf/registry目录,修改ip,如果是本机测试,则不需要修改。

 

 

5.启动

  1. #启动
  2. docker-compose up
  3. #或者后台启动
  4. docker-compose up -d

 

 

  1. 访问地址:http://192.168.60.20:8080/,用户名和密码是admin/admin

  

进去之后,里面是空的

 

到这里服务器构建成功了

五、测试完整流程

1).创建账号

  1. 打开刚刚的网址:http://192.168.60.20:8080/,创建一个账号guohui,密码guohui,角色分配为write-all

 

 

 

2) 推送镜像

  1. 修改配置
vim  /etc/docker/daemon.json

 添加信任的私服

{ "insecure-registries": ["192.168.60.20:5000"] }

 多个

{ "insecure-registries": ["192.168.60.20:5000","192.168.60.21:5000"] }

2. 重新加载配置和重启

  1. # 重新加载某个服务的配置文件
  2. systemctl daemon-reload
  3. # 重新启动 docker
  4. systemctl restart docker

3.拉取一个镜像用来测试

  1. #拉取镜像用来测试
  2. docker pull hello-world

4.登录服务器,输入创建的用户名和密码为guohui/guohui

docker login 192.168.60.20:5000

5.推送镜像到私有仓库((需要在登录状态下执行))

  1. #标记镜像
  2. docker tag hello-world 192.168.60.20:5000/myhello-world:1.0
  3. #推送镜像到私有仓库
  4. docker push 192.168.60.20:5000/myhello-world:1.0

访问web也可以查看到刚刚推送的镜像。

 

 

6.拉取镜像(需要在登录状态下执行)

  1. #拉取镜像前,可以先删除hello-world镜像,避免使用本地镜像
  2. docker rmi -f 镜像id
  3. #拉取刚刚推送到服务器的镜像
  4. docker run 192.168.60.20:5000/myhello-world:1.0

7.退出登录

docker logout 192.168.60.20:5000

六、遇到的问题

1.如果不登录,直接push就会提示需要认证。

2.执行 docker login 登录镜像仓库的时候,抛出如下异常:

  1. Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod:
  2. No such interface ‘org.freedesktop.Secret.Collection’ on object at path /org/freedesktop/secrets/collection/login
  3. Error saving credentials: error storing credentials - err: exit status 1, out:
  4. No such interface 'org.freedesktop.Secret.Collection' on object at path /org/freedesktop/secrets/collection/login

 

 

解决办法

因为服务器安装了 golang-docker-credential-hepers 包,这个包是在使用apt包管理器安装 docker-compose 时装上的。

解决办法是先通过apt卸载掉golang-docker-credential-hepers这个包:

apt purge golang-docker-credential-helpers

然后重新登录,成功:

 

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/95734
推荐阅读
相关标签
  

闽ICP备14008679号