好物优选点击查看详情 京东购买

暂无内容

搭建docker私有仓库

最近公司所用的采集器想要全部换成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

搭建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私有仓库插图1

搭建docker私有仓库插图1

上传镜像:

docker push 192.168.10.160:5000/busybox:1 

2、使用nginx搭建https反向代理

域名证书自备

server {
listen 443 ssl http2 default_server;
server_name mydocker.com;
ssl on ;
ssl_certificate “/etc/nginx/cert/mydocker.crt”;
ssl_certificate_key “/etc/nginx/cert/mydocker.key”;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

client_max_body_size 20000m ;
# Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;

location / {
proxy_pass http://192.168.10.160:5000 ; # 如果guacamole安装在别的服务器,请填写它的ip
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
access_log on;
}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享