Ubuntu14.04搭建和使用DOCKER私有仓库

因为 Docker官方仓库 在国内访问速度非常慢的,并且只允许有一个私有库,所以对于企业开发来说,考虑安全性和速度的因素,都需要自己搭建一个私有仓库来存放企业项目的各个版本的镜像,以下操作过程都基于官方 Registry 2.5.0 版本镜像。

搭建步骤

  1. 在Ubuntu 14.04服务器上创建目录 mkdir /home/freeman/docker-registry用于存储镜像文件。
  2. 启动容器 sudo docker run -d -p 5000:5000 -v /home/freeman/docker-registry:/var/lib/registry registry:2.5.0 注意2.5.0版本的registry内部images存储的目录为:/var/lib/registry,不再是老版本的 /tmp/register-v使用数据卷,这样就将registry中的所有镜像持久化到宿主服务器上,无论你以后关闭或是该registry容器,镜像始终存在服务器上。
  3. 在nginx服务器上设置https反向代理指向:127.0.0.1:5000,此处使用hub.domain.com作为演示域名,因为考虑到安全问题,请使用SSL,免费SSL证书可以在 StartComSsl 或 Letsencrypt 上获取。
server {
    listen 443;
    server_name hub.domain.com;

    ssl on;
    ssl_certificate /home/freeman/ssl/hub.domain.com.crt;
    ssl_certificate_key /home/freeman/ssl/hub.domain.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;
    
        client_max_body_size 0; 
        chunked_transfer_encoding on;
    location / {
        proxy_pass http://127.0.0.1:5000;
    }
}
  1. 使用 registry 2.0 api 访问仓库。
$ curl https://hub.domain.com/v2/_catalog # 获取所有repositories
$ {"repositories":["dotnet","hello-world","yuehuapi"]}
$ curl https://hub.domain.com/v2/yuehuapi/tags/list # 获取一个镜像的所有标签
$ {"name":"yuehuapi","tags":["v1.0.3"]}

使用私有仓库

  • 使用 docker tag hub.domain.com/yuehuapi:v1.0.0 image-id 将镜像打上私有仓库标签
  • 使用 docker push hub.domain.com/yuehuapi:v1.0.0 将镜像推送到私有仓库
  • 使用 docker run hub.domain.com/yuehuapi:v1.0.0 运行来自私有仓库的容器

你可能感兴趣的:(Ubuntu14.04搭建和使用DOCKER私有仓库)