本篇内容介绍了“如何使用docker registry搭建部署docker镜像库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
我使用的是Centos 6.5 x64版的系统,docker registry使用python来编写,对于系统环境的要求不会很苛刻。
在正式安装前需要安装几个依赖,使用yum就可以完成了:
yum install python-devel libevent-devel python-setuptools gcc xz-devel
为了安全起见,我们可以添加一个用户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
由于使用python来编写,可以直接使用easy_install(或pip)来安装docker-registry
easy_install 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
为了方便使用,可以在本地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来进行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镜像库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。