最近公司所用的采集器想要全部换成docker来搭建,所以要自己搭建个docker的私有仓库,由此记录下搭建过程。
所用到的系统主要又ubunut14.04和centos7.3,他们的配置有所不同
主机1内网 IP:192.168.10.160 (仓库)
主机2内网 IP:192.168.10.161
主机3内网 IP:192.168.10.163
第一步:安装docker
ubuntu14.04安装docker
apt-get install docker.io 启动: /etc/init.d/docker start 或者service docker start |
centos7.3安装docker:
yum install docker
第二步:下载registry镜像并且使用docker启动:
1、下载registry镜像:
docker pull registry
2、启动:
mkdir /opt/data/registry
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry –name private_registry registry
-d:后台独立进程运行
-v :将容易目录映射到本地
-p:端口映射
–name :容器名称
3、查看docker映射的端口
netstat -tlanp|grep docker
第三步:上传,下载镜像
1、在官网下载镜像:
docker pull busybox
2、修改镜像名字,准备上传
docker tag busybox 192.168.10.160:5000/busybox:1
3、上传镜像到私有库:
docker push 192.168.10.160:5000/busybox:1
结果上传镜像出错:
Get https://192.168.116.132:38015/v2/: x509: cannot validate certificate for 192.168.116.132 because it doesn’t contain any IP SANs
这是因为从docker1.3.2版本开始,使用registry时,必须使用TLS保证其安全。docker默认使用https上传镜像的,
现在docker private_registry 并没有开启https设置,所以才导致错误,解决方法又2个。
1、修改docker daemon 的json文件,增加insecure-registries 参数:
echo ‘{ “insecure-registries”:[“192.168.116.132:5000”] }’ > /etc/docker/daemon.json
重启docker服务:
systemctl restart docker
重启docker容器:
docker start private_registry
到此,可以使用这个docker仓库了
查看仓库镜像:http://192.168.10.160:5000/v2/_catalog
上传镜像:
docker push 192.168.10.160:5000/busybox:1
2、使用nginx搭建https反向代理
域名证书自备
server { client_max_body_size 20000m ; location / { } |
1.2 、由于是内网,要在每台主机修改/etc/hosts :
echo “192.168.10.160 mydocker.com” >> /etc/hosts
1.3、把域名证书拷贝到:/etc/docker/certs.d目录下
mkdir /etc/docker/certs.d/mydocker.com/
cp /etc/nginx/cert/mydocker.crt /etc/docker/certs.d/mydocker.com/ca.crt
1.4:重启docker和容器
systemctl restart docker
重启docker容器:
docker start private_registry
原文链接:https://www.cnblogs.com/yshc/p/10570439.html