layout: post
title: 构建Docker私有仓库
date: 2018-04-20
tags: [“Docker”,”自动化运维工具”]
构建Docker仓库有两种方式
1、通过epel仓库安装Docker仓库的rpm包。
2、通过docker守护进程pull一个registry镜像。
一、通过yum安装docker仓库
- yum install -y docker-registry docker-distribution registry是centos的extras仓库。
- 软件包 docker-registry 已经被 docker-distribution 取代,改为尝试安装 docker-distribution-2.6.2-1.git48294d9.el7.x86_64
- .
- .
- .
- docker-distribution是一个http、https服务,其提供registry的命令行接口
- [root@ansible_master ~]# rpm -ql docker-distribution
- /etc/docker-distribution/registry/config.yml #配置文件
- /usr/bin/registry #可执行文件
- /usr/lib/systemd/system/docker-distribution.service
- /usr/share/doc/docker-distribution-2.6.2
- /usr/share/doc/docker-distribution-2.6.2/AUTHORS
- /usr/share/doc/docker-distribution-2.6.2/CONTRIBUTING.md
- /usr/share/doc/docker-distribution-2.6.2/LICENSE
- /usr/share/doc/docker-distribution-2.6.2/MAINTAINERS
- /usr/share/doc/docker-distribution-2.6.2/README.md
- /var/lib/registry #镜像存储位置
查看registry的配置文件
- version: 0.1 #版本
- log:
- fields:
- service: registry
- storage:
- cache:
- layerinfo: inmemory #使用内存缓存
- filesystem:
- rootdirectory: /var/lib/registry #镜像存储位置
- http:
- addr: :5000 #对外提供的端口
启动仓库服务
- [root@ansible_master etc]# systemctl start docker-distribution
push一个镜像到镜像仓库
- 注意:使用非docker官方镜像,需要配置配置文件
- vim /etc/docker/daemon.json
- {
- "insecure-registries": ["127.0.0.1:5000"]
- }
- systemctl restart docker
- docker tag nginx:1.12-alpine 127.0.0.1:5000/nginx:alpine_v1 #为镜像重打标签
- docker push 127.0.0.1:5000/nginx:alpine_v1 #上传镜像
- The push refers to repository [127.0.0.1:5000/nginx] #镜像仓库
- 68695a6cfd7d: Pushed
- c1dc81a64903: Pushed
- 8460a579ab63: Pushed
- d39d92664027: Pushed
- alpine_v1: digest: sha256:812dd32216edcfd41decaacc8fe7cae80b39e5a87b0b8923bc15c4db94cf5bdb size: 1153
查看仓库的镜像存放
- [root@ansible_master blobs]# cd /var/lib/registry/docker/registry/v2/blobs/sha256/
- [root@ansible_master sha256]# tree .
- .
- ├── 24
- │ └── 24ed1c575f8176d90af60ed57f89a9bae0e16c56b48519311f48b106e0e0c407
- │ └── data
- ├── 55
- │ └── 550fe1bea624a5c62551cf09f3aa10886eed133794844af1dfb775118309387e
- │ └── data
- ├── 81
- │ └── 812dd32216edcfd41decaacc8fe7cae80b39e5a87b0b8923bc15c4db94cf5bdb
- │ └── data
- ├── af
- │ └── af3988949040d4843cce89896dbc55cc29c1ffabf917167ebabe4214e6e66233
- │ └── data
- ├── c2
- │ └── c20f0a205eaa02418dc50ce73e8f0dcd680aee77e04338b81b5d92117e6f9d49
- │ └── data
- └── d6
- └── d6642feac7289087182c44548776c392c5cf9ccc73289541335b4c4634670c70
- └── data
- 12 directories, 6 files
- #注意,镜像是分层构建的,每一层都是由一个sha256的hash值命名的。
二、通过镜像启用仓库
- docker search registry
- docker pull registry
- docker run -itd --name registry registry
vmware / harbor 企业级专业仓库" class="reference-link">三、/harbor 企业级专业仓库
安装要求
Harbor的先决条件部署为多个Docker容器,因此可以部署在任何支持Docker的Linux发行版上。目标主机需要安装Python,Docker和Docker Compose。
Hardware(硬件要求)
Software(软件要求)
Network ports
1、安装
下载harbor:http://harbor.orientsoft.cn/(https://github.com/vmware/harbor/releases)
安装docker-compose
- yum install -y docker-ce docker-compose openssl
配置harbor
- tar -xf harbor-offline-installer-v1.4.0.tgz
必须配置的配置项
- hostname: #外网地址或域名,否则docker login无法登录
- db_password: #数据库密码(harbor的镜像)
- max_job_workers: #尽量调大
- customize_crt: #证书配置
- ssl_cert:
- ssl_cert_key:
- secretkey_path:
- log_rotate_count:
- log_rotate_size:
要更改Harbour的配置,请先停止现有的Harbour实例并更新harbour.cfg。然后运行准备脚本来填充配置。最后重新创建并启动Harbour的实例:
- $ sudo docker-compose down -v
- $ vim harbor.cfg
- $ sudo prepare
- $ sudo docker-compose up -d
在保留图像数据和Harbour的数据库文件的同时去除Harbour的容器:
- $ sudo docker-compose down -v
删除Harbour的数据库和图像数据(用于干净的重新安装)
- $ rm -r /data/database
- $ rm -r /data/registry
2、push镜像到镜像仓库需要现创建Repository(登录http://harbor/ acount:admin,pass:admin,创建项目)
3、关闭harbordocker-compose down
文档更新时间: 2020-03-27 13:42 作者:张尚