Docker:私有仓库的搭建

本文指导如何快速搭建私有仓库,包括安装registry镜像、启动容器、配置CA证书等关键步骤,确保镜像安全推送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继续,本文描述私有仓库的搭建最简步骤。

概要来说:

  1. 安装registry镜像,启动容器。
  2. CA证书(还有一种办法是直接用HTTP也行,可以省略此步)
  3. 制作镜像,发布。

安装Registry的最简方法是直接Pull一个现成的Registry镜像即可。

docker pull registry

然后启动它。

docker run -p 5000:5000 -v /home/registry:/tmp/registry registry

暴露5000端口对外服务,同时,装载宿主机的/home/registry目录作为仓库目录。

现在可以push自己的镜像到这个仓库了,需要先给一个镜像打个标签,然后PUSH即可,命令如下:

docker tag java:7-jre hub.wo.cn/yancheng/java
docker push hub.wo.cn/yancheng/java

此时,必然会报一个安全错误:
这里写图片描述

从错误描述来看,有两种解决办法,一是使用HTTP,二是安装CA证书。

方法一,配置成HTTP,速度会稍快,也简单。只需要修改一下 /etc/default/docker 文件,加上一句话:

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=hub.open.wo.cn"  

然后重启Docker,sudo service docker restart,即可正常push了。

方法二,配置安全证书,略显麻烦,尤其是我们的docker registry在nginx后面。

首先,需要生成自己的证书(到服务器上操作),命令如下:

openssl genrsa -des3 -out hub.key 2048
openssl rsa -in hub.key -out hub_nopwd.key
openssl req -new -key hub_nopwd.key -out hub.csr
openssl x509 -req -days 3650 -in hub.csr -signkey hub_nopwd.key -out hub.crt

然后,我们配置一下Nginx,增加对HTTPS的支持。

server {
   listen       443;
   server_name  hub.wo.cn;
   ssl  on;
   ssl_certificate      /usr/local/nginx/conf/hub.crt;
   ssl_certificate_key  /usr/local/nginx/conf/hub_nopwd.key;

   location / {
        proxy_pass http://10.250.251.20:5000;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header x-forwarded-for $remote_addr;
   }
}

注意hub.crt和hub_nopwd.key的位置。重启nginx。

现在,需要将这个hub.crt弄到本地,按前面截图的提示放到相应目录下。即:/etc/docker/certs.d/hub.open.wo.cn

再次重启docker,再push就正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值