Docker(Ubuntu)私有库建立步骤
Docker私设服务器官方操作规范:
https://docs.docker.com/registry/deploying/#copy-an-image-from-docker-hub-to-your-registry
Docker 自带注册镜像registry ,启动该镜像后变可自定义设置私设服务器.
1. 环境准备
装有Docker的2台 Ubuntu虚拟机,私有库
以10.130.45.223 为案例.
2.下载私有项目
首先在机器上下载registry镜像: $ sudo docker pull registry
下载完之后我们通过该镜像启动一个容器:
$ docker run -d -ti --restart always --name docker-hub -p5000:5000 -v /docker-hub/registry:/var/lib/registry registr
默认情况下,会将仓库存放于容器内的/var/lib/registry(官网Dockerfile中查看)目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/var/lib/registry下
(a).run 起来后可以访问http://10.130.45.223:5000/v2/_catalog 查看库存界面
(b). curl -XGET 10.130.45.223:5000/v2/_catalog也可以收到指令提示
3.本地服务器IP设置
http访问:
只需添加信赖,因为我们启动的registry服务不是安全可信赖的。这是我们需要修改docker的目录/etc/docker/下创建 daemon.json 文件,添加下面的内容:
echo '{"insecure-registries":["10.130.45.223:5000"] }' > /etc/docker/daemon.json
https访问:
需要制作https自签名证书,https的ssl证书不允许使用ip地址,需要通过223的dns服务器设置宿主机域名为:ubuntu.vsct.io
制作CA证书:
openssl genrsa -des3 -out ca.key 2048 #生成私钥,后面这个2048是密钥长度
openssl req -new -x509 -days 7305 -key ca.key-out ca.crt #生成公钥
生成服务端证书并用CA签名认证:
openssl genrsa -des3 -out ubuntu.vsct.io.key2048 #生成ubuntu.vsct.io.key证书私钥
openssl req -new -key ubuntu.vsct.io.key -outubuntu.vsct.io.csr # 生成签名请求,common name填写域名
openssl ca -policy policy_anything -days 1460-cert ca.crt -keyfile ca.key -in ubuntu.vsct.io.csr -out ubuntu.vsct.io.crt # 使用CA进行签名
客户端安装证书;
把生成的客户端证书放到 /etc/docker/certs.d/ubuntu.vsct.io/ca.crt 下
4.本地服务器上传下载测试
修改文件或者配置证书后都需要
systemctl restart docker.service
可以随便下载个镜像push 到私设服务器中,这里选用本地镜像换个标签名字推送到私设服务器.
docker tag ubutun test-public-ubuntu
docker push test-public-ubuntu
然后可以尝试下载
docker pull test-public-ubuntu