当前位置: 首页 > 编程笔记 >

Docker  Registry 私有仓库搭建详细步骤

司徒经纶
2023-03-14
本文向大家介绍Docker  Registry 私有仓库搭建详细步骤,包括了Docker  Registry 私有仓库搭建详细步骤的使用技巧和注意事项,需要的朋友参考一下

Docker  Registry 私有仓库搭建

官方已经提供了很多版本的 Linux 镜像,直接从官方仓库(Public Repositories)下载就可以了。如果考虑到安全性和速度,我们可能会想在自己局域网里架设一个私有仓库(Private Repositories)来放我们自己的镜像,Docker-Registry 正是我们需要的工具。

本次搭建

docker-registry server (dev) (v0.9.0)

添加docker用户和目录

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

useradd docker
mkdir -p /home/docker_registry
chown -R docker.docker /home/docker_registry/

 从github克隆最新版本registry, 进入这个目录下的config子目录,从模板复制一个配置文件出来:

git clone https://github.com/docker/docker-registry.git
cd docker-registry/config
cp config_sample.yml config.yml

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

#配置sqlite数据库位置
sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite:////home/docker_registry/docker-registry.db
#配置本地存储位置
local: &local
  storage: local
  storage_path: _env:STORAGE_PATH:/home/docker_registry

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

apt-get update
apt-get install build-essential python-dev liblzma-dev libevent-dev python-pip libssl-dev

使用apt-get安装软件包时经常会提示让你插入netinst的光盘:

Media change: please insert the disc labeled

当没有时就无法进行安装了, 这时可以打开文件/etc/apt/sources.list文件,注释掉cdrom那一行,

然后再执行apt-get update更新下deb仓库,

这样以后再使用apt-get安装时就不会再搜寻cdrom了

修改HOSTS文件加上域名

vim /etc/hosts
127.0.0.1 docker.registry.com

安装Nginx

apt-get install nginx
#配置Nginx config
vim /etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
  worker_connections 768;
  # multi_accept on;
}

http {

  ##
  # Basic Settings
  ##

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;
  # server_tokens off;

  # server_names_hash_bucket_size 64;
  # server_name_in_redirect off;

  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  ##
  # Logging Settings
  ##

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  ##
  # Gzip Settings
  ##

  gzip on;
  gzip_disable "msie6";

  # gzip_vary on;
  # gzip_proxied any;
  # gzip_comp_level 6;
  # gzip_buffers 16 8k;
  # gzip_http_version 1.1;
  # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

  ##
  # nginx-naxsi config
  ##
  # Uncomment it if you installed nginx-naxsi
  ##

  #include /etc/nginx/naxsi_core.rules;

  ##
  # nginx-passenger config
  ##
  # Uncomment it if you installed nginx-passenger
  ##
  
  #passenger_root /usr;
  #passenger_ruby /usr/bin/ruby;

  ##
  # Virtual Host Configs
  ##

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
  
  upstream docker-registry {
   server localhost:5000;
  }

  server {
   listen 80;
   server_name docker.registry.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

service nginx start

访问浏览器测试

http://192.168.124.130/


 

安装python依赖

cd /opt/docker-registry
pip install .

若出现:Cannot connect to proxy. Socket error: [Errno -2] Name or service not known.

手动安装依赖包 加代理参数

pip install -i http://pypi.v2ex.com/simple .
#注销下面的 pip install . 安装全部
--pip install -i http://pypi.v2ex.com/simple gunicorn

建立软连接

ln -s /usr/local/bin/gunicorn /usr/bin/gunicorn

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

gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 8 --max-requests 100 docker_registry.wsgi:application
访问浏览器

http://docker.registry.com


如果看到以下的输出,则表明docker registry安装成功

给目录下数据库赋权限,不然上传文件时会不能写数据库

chmod 777 /home/docker_registry/repositories/docker-registry.db

使用supervisord来进行进程的监控

apt-get install supervisor

配置supervisor [docker-registry]

vim /etc/supervisor/conf.d/docker-registry.conf

[program:docker-registry]
directory=/opt/docker-registry
#使用docker用户
user=docker
command=/usr/local/bin/gunicorn --access-logfile - --error-logfile - -k gevent -b 0.0.0.0:5000 -w 8 --max-requests 100 --graceful-timeout 3600 -t 3600 docker_registry.wsgi:application 
redirect_stderr=true
stderr_logfile=none
stdout_logfile=/var/log/supervisor/docker-registry.log
autostart=true
autorestart=true
#重新加载 supervisor 配置:
supervisorctl
supervisor> reread
docker-registry: available
supervisor> update
docker-registry: added process group
supervisor> status
docker-registry  RUNNING  pid 4371, uptime 0:00:01

查看端口占用

netstat -apn | grep 5000

启动重启

service supervisor start
#/etc/init.d/supervisord {start|stop|restart|force-reload|status|force-stop}

  感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍Docker Registry搭建私有镜像仓库的实现方法,包括了Docker Registry搭建私有镜像仓库的实现方法的使用技巧和注意事项,需要的朋友参考一下 微服务的镜像会上传到Docker仓库保存,常用的公网Docker仓库有阿里云,网易云等,在企业局域网也可以搭建自己的Docker私有仓库,本教程使用Docker提供的私有仓库registry。 1.拉取私有仓库镜像 2.创建

  • 本文向大家介绍docker 如何搭建私有仓库(ubuntu 14.04,Docker版本1.6.4)详细介绍,包括了docker 如何搭建私有仓库(ubuntu 14.04,Docker版本1.6.4)详细介绍的使用技巧和注意事项,需要的朋友参考一下 docker 搭建私有仓库 本篇文章描述了多个机器可以在内网中访问自己的私有仓库,访问仓库时需要CA认证!最简单,最低保障私有仓库的安全性!在一个比

  • 本文向大家介绍docker私有仓库的搭建和使用详解,包括了docker私有仓库的搭建和使用详解的使用技巧和注意事项,需要的朋友参考一下 1.下载仓库镜像 2.创建私有仓库容器-d表示后台启动 3.防火墙解除5000端口限制 4.验证私有仓库是否启动成功 http://192.3.8.12:5000/v2 5.打包镜像 6.把打包好的镜像上传到私有仓库 这个问题可能是由于客户端采用https,doc

  • 本文向大家介绍详解docker私有仓库搭建与使用实战,包括了详解docker私有仓库搭建与使用实战的使用技巧和注意事项,需要的朋友参考一下 hub.docker.com上可以保存镜像,但是网速相对较慢,在内部环境中搭建一个私有的公共仓库是个更好的方案,今天我们就来实战搭建私有docker仓库吧; 环境规划 需要两台机器:docker私服仓库的server和使用docker的普通机器,这两个机器都是

  • 本文向大家介绍详解CentOS 7 : Docker私有仓库搭建和使用,包括了详解CentOS 7 : Docker私有仓库搭建和使用的使用技巧和注意事项,需要的朋友参考一下 系统环境: CentOS 7.2 192.168.0.179:Docker仓库 192.168.0.60:客户端 安装并启动docker 搭建私有仓库 179上下载registry镜像 防火墙添加运行5000端口 下载完之后

  • 本文向大家介绍docker创建私有镜像仓库搭建教程,包括了docker创建私有镜像仓库搭建教程的使用技巧和注意事项,需要的朋友参考一下 我的环境相关设置如下 环境:centos7 IP地址:10.211.55.30 dockere版本:1.10.3 镜像仓库:v2 首先在10.211.55.30机器上下载registry镜像 也可以进行镜像导入的方法进行离线的安装。可以去我的网盘中下载:https