赞
踩
搭建一个私服docker镜像中心,并且需要安全认证和后台管理。
docker pull hyper/docker-registry-web docker pull registry
yum install docker-compose
下载并解压(github国内比较慢,如果下载失败的话,多尝试几次)
curl -Ls https://github.com/mkuchin/docker-registry-web/releases/download/v0.1.2/examples.tar.gz | tar -xzv
切换到目录
cd examples/auth-enabled/
3.使用脚本生成私钥和自签名证书:
./generate-keys.sh
4.修改配置,进入conf/registry目录,修改ip,如果是本机测试,则不需要修改。
5.启动
- #启动
- docker-compose up
- #或者后台启动
- docker-compose up -d
访问地址:http://192.168.60.20:8080/,用户名和密码是admin/admin
进去之后,里面是空的
到这里服务器构建成功了
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. 重新加载配置和重启
- # 重新加载某个服务的配置文件
- systemctl daemon-reload
- # 重新启动 docker
- systemctl restart docker
3.拉取一个镜像用来测试
- #拉取镜像用来测试
- docker pull hello-world
4.登录服务器,输入创建的用户名和密码为guohui/guohui
docker login 192.168.60.20:5000
5.推送镜像到私有仓库((需要在登录状态下执行))
- #标记镜像
- docker tag hello-world 192.168.60.20:5000/myhello-world:1.0
- #推送镜像到私有仓库
- docker push 192.168.60.20:5000/myhello-world:1.0
访问web也可以查看到刚刚推送的镜像。
6.拉取镜像(需要在登录状态下执行)
- #拉取镜像前,可以先删除hello-world镜像,避免使用本地镜像
- docker rmi -f 镜像id
- #拉取刚刚推送到服务器的镜像
- docker run 192.168.60.20:5000/myhello-world:1.0
7.退出登录
docker logout 192.168.60.20:5000
1.如果不登录,直接push就会提示需要认证。
2.执行 docker login
登录镜像仓库的时候,抛出如下异常:
- Remote error from secret service: org.freedesktop.DBus.Error.UnknownMethod:
- No such interface ‘org.freedesktop.Secret.Collection’ on object at path /org/freedesktop/secrets/collection/login
- Error saving credentials: error storing credentials - err: exit status 1, out:
- 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
然后重新登录,成功:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。