手记

私有仓库之 docker-registry

docker-registry 是一个基于Python 的开源项目,可以用于构那私有的镜像注册服务器。官方仓库也提供了docker-registry的镜像,用户可以通过容器运行和源码安装两种 方式来使用 docker-registy.

基于容器运行

  1. 获取并运行官方 registry 镜像:

# sudo docker run -d -p 5000:5000 registry

启动后比较关键的参灵敏是指定配置文件和仓库存储路径。
通过以下命令,指定本地路径( 如/home/usr/registry-conf)下的配置文件:

# sudo docker run -d - p 5000:5000 -v /home/usr/registry-conf:/registry-conf -eDOCKER_REGISTRY_CONFIG=/registry-conf/config.yml registry

通过 -v 参数来配置仓库路径。例如下面的例子将镜像存储到本地/opt/data/registry 目录:

sudo docker run -d -p 5000:5000 -v /opt/data/registry

本地安装运行

通过 源码安装

- Ubuntu 版的安装:# sudo apt-get install -y build-essential python-dev libevent-dev python-pip liblzma-dev# sudo pip install gunicorn pyyaml flask flask-cors rsa# sudo pip install docker-registry- Centos 版的安装:# sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel# sudo pip install gunicorn pyyaml flask flask-cors rsa gevent# sudo python-pip install docker-registry

也可以从 docker-registry(https://github.com/docker/docker-registry)下载源码进行安装:

# sudo apt-get install build-essential python-dev libevent-dev python-pip libssl-dev liblzma-dev libffi-dev# git clone https://github.com/docker/docker-registry.git# cd docker-registry然后基于样例配置创建配置文件:# cp config/config_sample.yml config/config.yml修改local模板段的storage_path 到本地的存储仓库的路径,例如:opt/data/registry.local:&local
    <<:*common
    storage:local
    storage_path: _env:STORAGE_PATH:/opt/data/registry
然后执行安装操作:# sudo python setup.py install

对于通过软件包方式安装的,配置文件一般放在/usr/local/lib/python2.7/dist-packages/docker_registry/config/config/yml.
通过下面的命令来启去 :

# sudo gunicorn --access-logfile /var/log/docker-registry/access.log --error-logfile /var/log/docker-registry/server.logo -k gevent --max-requestss 100 --graceful-timeout 3600 -t 3600 -b 127.0.0.1:5000 -w 1 docker_registry.wsgi:application

使用 访问本地的5000端口,看到输出 docker-registry 的版本信息说明运行成功:

# sudo curl 127.0.0.1:5000"docker-registry server(dev)(v0.8.1)"

配置服务脚本

一般通过服务脚本来管理registry服务会更加方便,以Ubuntu 14.04系统为例。
首先,创建/etc/init/docker-registry.conf 文件,内容为:

description "Docker Registry"start on runlevel[2345]
stop on runlevel[016]
respawn
respawn limit 10 5
scriptexec gunicorn --access-logfile /var/log/docker-registry/access.log --error-logfile /var/log/docker-registry/server.log -k gevent --max-requestss 100 --graceful-timeout 3600 -t 3600 -b localhost:15000 -w 8 docker_registry.wsgi:application
end script

然后,执行 service docker-registry start ,在本地的15000端口启动registry 服务。



作者:刘远鑫
链接:https://www.jianshu.com/p/d5f117bf302f


0人推荐
随时随地看视频
慕课网APP