Docker仓库
推送镜像到阿里云仓库
到阿里云创建一个镜像仓库https://cr.console.aliyun.com/cn-shenzhen/instances/repositories
看阿里云文档
搭建私有仓库
Docker Hub是Docker默认官方公共镜像仓库,搭建私有镜像仓库的话,官方也提供了registry镜像,使得搭建私有仓库非常简单。
docker search registry
docker pull registry
docker run -d -v /opt/registry:/var/lib/registry -p 5000:5000 --restart-always --name myrepositry registry
#查看仓库的所有镜像
curl http://localhost:5000/v2/_catalog
#配置私有仓库可信任
vi /etc/docker/daemon.json
-------------------------------------
{"insecure-registries":["公网地址:5000"]}
-------------------------------------
systemctl restart dockr
#给镜像打标签
docker tag centos:latest 公网地址:5000/mycentos:1.0
#上传镜像
docker push 公网地址:5000/mycentos:1.0
#下载镜像
docker pull 公网地址:5000/mycentos:1.0
#下载
docker pull 公网地址:5000/mycentos:1.0
列出镜像标签
curl http://localhost:5000/v2/mycentos/tag/list
Harbor
VMWare公司开源的企业级Docker容器镜像私有仓库,以Docker Registry为基础进行相应的企业级扩展,从而获得了更广泛的应用,这些新特性包括管理用户界面、基于角色的访问控制/LDAP继承及审计日志等,同时还支持原生中文,每个组件都是以Docker容器的形式构建的,用于部署Harbor的Docker Compose模板位于/Deployer/docker-compose.yml,由5个容器组成,这几个容器通过Docker Link的形式连接在一起,在容器之间通过容器名字互相访问,对终端用户而言,只需要暴露Proxy(Nginx代理)的服务端口。
说白了,就是在Docker Registry基础上增了UI和权限控制的私有仓库。
核心组件
Proxy:Nginx服务器构成反向代理;
Registry:由Docker官方的开源Registry镜像构成容器实例;
UI:B/S架构的Web界面;
Service:构成此容器的代码,也是Harbor项目的主体;
MySQL:官方MySQL镜像构成的数据库容器;
Log:运行着rsyslogd的容器,通过log-driver的形式和其他容器的日志;
安装条件
Python为2.7或以上版本
Docker引擎为1.10或以上版本
Docker Compose为1.6.0或以上版本
安装
1、解压软件包: tar xvf harbor-offline-installer-.tgz
https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-offline-installer-v1.2.0.tgz
2、配置harbor.cfg
a、必选参数
hostname:目标的主机名或者完全限定域名
ui_url_protocol:http或https,默认为 。默认为http
db_password:用于db_auth的MySQL数据库的根密码。更改此密码进行任何生产用途
max_job_workers:(默认值为3)作业服务中的复制工作人员的最大数量。对于每个映像复制作业,工作人员将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员都会消耗一定数量的网络/CPU/IO资源,请根据主机的硬件资源,仔细选择该属性的值资源,请根据主机的硬件资源,仔细选择该属性的值
customize_crt:(on或off,默认为on)当此属性打开时,prepare脚本将为注册表的令牌的生成脚本将为注册表的令牌的生成/验证创 建私钥和根证书
ssl_cert:SSL证书的路径,仅当协议设置为 证书的路径,仅当协议设置为https时才应用
ssl_cert_key:SSL密钥的路径,仅当协议设置为 密钥的路径,仅当协议设置为https时才应
secretkey_path:用于在复制策略中加密或解密远程注册表的密码的密钥路径
3、创建 、创建 https 证书以及配置相关目录权限
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
mkdir /data/cert
chmod -R 777 /data/cert
4、运行脚本进行安装
./install.sh
5、访问测试
https://reg.yourdomain.com的管理员门户(将reg.yourdomain.com更改为您的主机名harbor.cfg)。请注意,默认管理员用户名 密码为admin / Harbor12345
6、上传镜像进行上传测试
a、指定镜像仓库地址
vim /etc/docker/daemon.json
{ "insecure-registries": ["serverip"] }
b、下载测试镜像
docker pull hello-world
c、给镜像重新打标签
docker tag serverip/hello-world:latest
d、登录进行上传
docker login serverip
7、其它Docker 客户端下载测试
a、指定镜像仓库地址
vim /etc/docker/daemon.json
{ "insecure-registries": ["serverip"] }
b、下载测试镜像
docker pull serverip/hello-world:latest