docker registry web ui 及私有镜像仓库 安装配置记录

本次安装记录基于docker 安装,宿主机ip:192.168.5.16

1,创建宿主机目录(用于存放容器配置文件):

/securitit/registry/certs/ 
/securitit/registry/auth/ 
/securitit/registry/conf/ 
/securitit/registry/db/
/securitit/registry/data/registry/

2,使用openssl生成证书和RSA私钥:

openssl req -new -newkey rsa:4096 -days 365 -subj "/CN=localhost" -nodes -x509 -keyout /securitit/registry/auth/auth.key -out /securitit/registry/auth/auth.cert

未安装openssl 需要先安装openssl再生成证书密钥: 

ubuntu:  apt-get install -y openssl
centos:  yum install -y openssl

3,创建docker registry容器

创建配置文件:/securitit/registry/conf/registry-srv.yml

内容:

version: 0.1    
log:
  fields:
    service: registry
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry

http:
  addr: 0.0.0.0:5000   
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
threshold: 3
auth:
  token:
    # registry-web的地址.
    realm: http://192.168.5.16:5050/api/auth
    # 私有仓库的配置地址.
    service: 192.168.5.16:5000
    # 需要与registry-web定义的名称一致.
    issuer: 'my issuer'
    # 容器内证书路径,容器启动时通过数据卷参数指定.
    rootcertbundle: /etc/docker/registry/auth.cert

拉取镜像:

docker pull registry

创建容器:

docker run -v /securitit/registry/conf/registry-srv.yml:/etc/docker/registry/config.yml \
            -v /securitit/registry/data/registry:/var/lib/registry  -v /securitit/registry/auth/auth.cert:/etc/docker/registry/auth.cert -p 5000:5000  --name registry-srv -d registry

4,创建docker registry web ui容器

创建配置文件:/securitit/registry/conf/registry-web.yml

内容:

registry:
  # 私有仓库地址.
  url: http://192.168.5.16:5000/v2
  # 私有仓库命名.
  name: 192.168.5.16:5000
  # 是否只读设置.
  readonly: false
  auth:
    # 是否进行鉴权处理.
    enabled: true
    # 需要与私有仓库定义的名称一致.
    issuer: 'my issuer'
    # 容器内私钥证书路径,容器启动时通过数据卷参数指定.
    key: /conf/auth.key

拉取镜像:

docker pull hyper/docker-registry-web

创建容器:

docker run -it -d -v /securitit/registry/conf/registry-web.yml:/conf/config.yml \
           -v /securitit/registry/auth/auth.key:/conf/auth.key -v /securitit/registry/db:/data \
           -p 5050:8080 --name registry-web hyper/docker-registry-web

5,访问 http://192.168.5.16:5050/ 默认用户名密码 admin/admin

 


docker-registry-web 角色管理:

默认用户admin/admin有如下角色: UI_ADMIN、UI_USER、UI_DELETE、read-all、write-all

可以删除或修改UI_ADMIN和UI_USER,这两个角色用来指定角色允许admin和user访问UI系统。

  UI_USER角色允许查询镜像仓库。

  UI_ADMIN角色相比UI_USER角色,允许创建、删除和修改镜像仓库。

  UI_DELETE角色允许基于ACL策略删除镜像。

6,拉取私有仓库镜像:

编辑:/etc/docker/daemon.json 没有就创建一个

加入私服地址:"insecure-registries": ["192.168.5.16:5000"]

{
"registry-mirrors": ["https://registry.cn-hangzhou.aliyuncs.com"],
"insecure-registries": ["192.168.5.16:5000"]
}

重新加载:systemctl daemon-reload

重启docker:systemctl restart docker

7, 为registry 生成用户名和密码文件

执行:

docker run  --entrypoint htpasswd registry -Bbn  admin  admin > /securitit/registry/auth/htpasswd

报错解决:

 安装依赖:

 yum -y install httpd
htpasswd -Bbn admin admin  > /securitit/registry/auth/htpasswd

删除并重启容器:

 docker run -d -p 5000:5000 --restart=always --name registry-srv \
		-v /securitit/registry/conf/registry-srv.yml:/etc/docker/registry/config.yml \
        -v /securitit/registry/data/registry:/var/lib/registry  \
		-v /securitit/registry/auth/auth.cert:/etc/docker/registry/auth.cert \
		-e "REGISTRY_AUTH=htpasswd" \
		-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
		-e  REGISTRY_AUTH_HTPASSWD_PATH=/securitit/registry/auth/htpasswd \
		registry

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
配置私有镜像仓库,您可以按照以下步骤进行操作: 1. 首先,您需要安装Docker Distribution,它是一个开源项目,用于搭建和管理Docker私有镜像仓库。您可以使用以下命令来安装Docker Distribution: ``` $ sudo yum install -y docker-distribution ``` 2. 安装完成后,您需要配置Docker Distribution。默认配置文件位于`/etc/docker/distribution/docker-distribution.yml`。您可以根据需要编辑该文件,例如设置仓库的存储路径、认证和授权等。请注意,配置文件中的注释会提供有关每个选项的详细说明。 3. 配置完成后,您需要启动Docker Distribution服务。使用以下命令启动服务: ``` $ sudo systemctl start docker-distribution ``` 4. 确保服务已成功启动后,您可以使用`systemctl`命令将Docker Distribution设置为开机自启动: ``` $ sudo systemctl enable docker-distribution ``` 5. 现在,您的私有镜像仓库已经搭建完成。您可以使用`docker push`和`docker pull`命令来上传和下载镜像。请注意,您需要使用私有镜像仓库的地址作为仓库的名称。例如,如果您的私有镜像仓库在`example.com`上运行,您可以使用以下命令推送和拉取镜像: ``` $ docker push example.com/your-image:tag $ docker pull example.com/your-image:tag ``` 通过按照上述步骤配置私有镜像仓库,您可以方便地管理和维护内部的镜像。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Docker-配置私有仓库](https://blog.csdn.net/weixin_66461008/article/details/125533575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [搭建Docker私有镜像仓库](https://blog.csdn.net/qq_39581637/article/details/122438056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Docker搭建私有镜像仓库的方法](https://download.csdn.net/download/weixin_38645373/14092391)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值