189 8069 5689

如何使用dockerregistry搭建部署docker镜像库

本篇内容介绍了“如何使用docker registry搭建部署docker镜像库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

为沁源等地区用户提供了全套网页设计制作服务,及沁源网站建设行业解决方案。主营业务为成都网站设计、成都做网站、沁源网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

安装环境

我使用的是Centos 6.5 x64版的系统,docker registry使用python来编写,对于系统环境的要求不会很苛刻。

安装过程

使用yum安装依赖

在正式安装前需要安装几个依赖,使用yum就可以完成了:

yum install python-devel libevent-devel python-setuptools gcc xz-devel

添加docker用户和目录

为了安全起见,我们可以添加一个用户docker,使用这个非root用户来允许docker registry程序,同时指定好docker镜像的存储位置,本处指定为/opt/docker_data/registry目录:

useradd docker
mkdir -p /opt/docker_data/registry
chown -R docker.docker /opt/docker_data/registry

使用easy_install 安装

由于使用python来编写,可以直接使用easy_install(或pip)来安装docker-registry

easy_install docker-registry

配置docker registry

使用easy_install安装完成的docker-registry位于/usr/lib/python2.6/site-packages/docker_registry-0.7.3-py2.6.egg目录,此时需要进入这个目录下的config子目录,从模板复制一个配置文件出来:

cd /usr/lib/python2.6/site-packages/docker_registry-0.7.3-py2.6.egg/config
cp config_sample.yml config.yml

此时可以修改这个config.yml配置文件,需要注意修改以下的两个地方:

配置sqlite数据库位置
 sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite://///opt/docker_data/registry/docker-registry.db

配置本地存储位置
local: &local
    storage: local
    storage_path: _env:STORAGE_PATH:/opt/docker_data/registry

配置nginx

为了方便使用,可以在本地DNS服务器上注册docker.knktc.com这个域名,并使用nginx来进行代理。

配置文件中加入以下语句:

#for docker
upstream docker-registry {
  server localhost:5000;
}

server {
  listen 80;
  server_name docker.knktc.com;
  
  proxy_set_header Host       $http_host;   # required for docker client's sake
  proxy_set_header X-Real-IP  $remote_addr; # pass on real client's IP
  
  client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads

  # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
  chunked_transfer_encoding on;
  #     
  location / {
       proxy_pass http://docker-registry;
               }
    }

测试启动

nginx启动之后,使用docker用户执行以下的命令可以测试启动:

/usr/bin/gunicorn --debug -k gevent -b 0.0.0.0:5000 -w 8 docker_registry.wsgi:application

此时可能会遇到数量众多的import error,逐个使用easy_install 安装缺失的模块就可以了。最后在浏览器中访问http://docker.knktc.com,如果看到以下的输出,则表明docker registry安装成功了:

"docker-registry server (dev) (v0.7.3)"

使用supervisord来进行进程的监控

官方和其他的文档都推荐使用supervisord来进行docker registry的进程监控,安装supervisor后,在/etc/supervisord中加入以下语句即可:

[program:docker-registry]
user=docker
command=/usr/bin/gunicorn --debug -k gevent -b 0.0.0.0:5000 -w 8 docker_registry.wsgi:application 
redirect_stderr=true  
stderr_logfile=/var/log/supervisor/docker-registry-error.log
stdout_logfile=/var/log/supervisor/docker-registry.log  
autostart=true  
autorestart=true

测试使用

docker registry搭建完毕之后就可以使用tag命令将本地的镜像设置为使用本地的docker registry来存储了,一个简单的例子如下:

#将本地的localimage镜像设置为存储到docker registry上,命名为knktc/testimage
docker tag localimage docker.knktc.com/knktc/testimage

#上传这个镜像到docker registry中
docker push docker.knktc.com/knktc/testimage

#换一台机器来pull这个镜像
docker pull docker.knktc.com/knktc/testimage

“如何使用docker registry搭建部署docker镜像库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文名称:如何使用dockerregistry搭建部署docker镜像库
分享地址:http://jkwzsj.com/article/pjspjg.html

其他资讯