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

发布时间:2021-09-04 11:41:47 作者:chen
来源:亿速云 阅读:191

本篇内容介绍了“如何使用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镜像库”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. docker搭建和使用harbor私有仓库
  2. Docker私有仓库的搭建方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

docker

上一篇:javascript es6的介绍以及常见问题

下一篇:MySQL中的隐藏列的具体查看方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》