zoukankan      html  css  js  c++  java
  • 搭建自己的 Docker 私有仓库服务

    关于 Docker 的介绍这里就省了,Docker 在其相关领域的火爆程度不亚于今年汽车行业里的特斯拉,docCloud 甚至把公司名都改成了 Docker, Inc. 好东西总是传播很快,我们现在已经有客户在 VPS 上用 Docker 来部署应用了。不了解 Docker 的小伙伴们可以看看 使用 Docker/LXC 迅速启动一个桌面系统 开头部分的介绍。

    和初次接触 Xen/KVM 虚拟技术的体验不同,Docker 不用自己动手制作镜像,官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了。如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具。

    用 git 下载源码后修改配置文件 config.yml,把 storage_path 部分改成 Docker 镜像仓库的存放地点:

    $ git clone https://github.com/dotcloud/docker-registry
    $ cd docker-registry
    
    $ cp config_sample.yml config.yml
    $ vi config.yml
    ...
    # This is the default configuration when no flavor is specified
    dev:
        storage: local
        storage_path: /home/vpsee/registry
        loglevel: debug
    ...
    
    $ mkdir /home/vpsee/registry
    

    安装一些必要软件包和一些 Docker-Registry 需要用到的 Python 工具和库:

    $ sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev
    
    $ sudo pip install -r requirements.txt
    

    Docker-Registry 实际上是个基于 Flask 的 web app,安装成功后就可以这样运行了:

    $ sudo gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:80 -w 1 wsgi:application
    

    打开浏览器,访问 IP 地址就可以看到 docker-registry 私有仓库在运行了:

    Docker-Registry

     

    查看一下现有系统上已经有了哪些镜像:

    $ sudo docker images
    REPOSITORY      TAG        ID              CREATED         SIZE
    vpsee/ubuntu    latest     936a54e8a345    2 weeks ago     12.29 kB (virtual 327.8 MB)
    ubuntu          latest     8dbd9e392a96    6 months ago    131.5 MB (virtual 131.5 MB)
    ubuntu          precise    8dbd9e392a96    6 months ago    131.5 MB (virtual 131.5 MB)
    ubuntu          quantal    b750fe79269d    7 months ago    24.65 kB (virtual 180.1 MB)
    

    我们打算把 vpsee/ubuntu 这个镜像(ID 是 936a54e8a345)上传(push)到我们刚创建的私有仓库里(这个私有仓库的 IP 地址是 192.168.2.45),会看到提示 Username/Password,初次 push 的话,可以自己设置用户名和密码:

    $ sudo docker tag 936a54e8a345 192.168.2.45/vpsee
    $ sudo docker push 192.168.2.45/vpsee
    Username: vpsee
    Password:
    Email: docker@vpsee.com
    Account created. Please use the confirmation link we sent to your e-mail to activate it.
    The push refers to a repository [192.168.2.45/vpsee] (len: 1)
    Processing checksums
    Sending image list
    Pushing repository 192.168.2.45/vpsee (1 tags)
    Pushing 8dbd9e392a964056420e5d58ca5cc376ef18e2de93b5cc90e868a1bbc8318c1c
    Buffering to disk 58266504/? (n/a)
    Pushing 58.27 MB/58.27 MB (100%)
    

    完成 push 后,我们的私有仓库就有了第一个镜像了:

    $ sudo docker images
    REPOSITORY          TAG      ID             CREATED        SIZE
    vpsee/ubuntu        latest   936a54e8a345   2 weeks ago    12.29 kB (virtual 327.8 MB)
    ubuntu              latest   8dbd9e392a96   6 months ago   131.5 MB (virtual 131.5 MB)
    ubuntu              precise  8dbd9e392a96   6 months ago   131.5 MB (virtual 131.5 MB)
    ubuntu              quantal  b750fe79269d   7 months ago   24.65 kB (virtual 180.1 MB)
    192.168.2.45/vpsee  latest   936a54e8a345   2 weeks ago    12.29 kB (virtual 327.8 MB)
    

    以后只要 docker pull 192.168.2.45/vpsee 就可以从我们自己的私有仓库下载和运行镜像了,本地网络速度当然会快很多。

  • 相关阅读:
    好书推介《实战机器学*》
    Web技术图书名单
    大数据技术书,看看有没有感兴趣的
    博客园设置自定义皮肤,添加自定义小模块悬浮天气组件,github图标链接等
    Final Cut Pro 视频剪辑学习记录,快捷操作等
    css 利用 clip-path 裁剪多边形,三角形,梯形,六边形等
    有呀,有呀,设计!有呀,有呀,组件!
    github README添加badge标识,多彩的tag标签
    vue timeline 开箱即用的时间轴组件,日志更新时间轴组件
    那些需要收藏的网站网址
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/2423rsfd.html
Copyright © 2011-2022 走看看