Docker私有仓库的搭建

平时我们执行docker pull xxx的时候都是从默认的公共仓库下载镜像,实际在工作中,我们不能把企业项目push到公共仓库,所以为了更好的管理镜像,搭建一个本地的私有仓库也很有必要,这里主要介绍两种方式搭建私有仓库。

一、registry搭建

1、搭建

Docker官方有提供搭建私有仓库的基础镜像registry,直接下载运行容器即可,注意容器默认使用的是5000端口,需要映射出去;默认将上传的镜像保存在容器内的/var/lib/registry目录下,需要将此目录映射到主机上,避免数据丢失。
docker search registry

docker pull registry:latest
docker run -d -v /usr/local/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:latest

浏览器访问http://{ip}:5000/v2,我是安装在虚拟机上,访问http://192.168.2.17:5000/v2

即安装完成!

2、使用验证

将本地镜像push到私有仓库中来验证一下
查看本地镜像:docker images,我们选择将postgres镜像push

要通过docker tag将该镜像标志为要推送到私有仓库
docker tag postgres:11.8 localhost:5000/postgres:11.8
然后通过docker push将标记后的镜像推送至私有仓库
docker push localhost:5000/postgres:11.8
之后访问http://192.168.2.17:5000/v2/_catalog查看私有仓库目录,确认是否上传成功:

二、harbor的搭建

上述方法虽然简单,但是在管理的功能上还有些不足,为此Docker官方还提供一个Harbor的服务,是一个用于存储和分发Docker镜像的企业级Registry服务器,增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。

1、搭建

  • 安装要求
    服务器上要先安装好docker和docker-compose,对于v2.1.0版本的要求文档中有要求说明,docker-compose的安装和介绍会再做说明

  • 下载
    地址为: https://github.com/goharbor/harbor/releases ,本文下载的是v2.1.0

  • 安装配置
    vim /etc/docker/daemon.json,添加{ "insecure-registries":["192.168.2.17:9090"] },写上自己的ip,若没有这个文件则新建一个,然后再继续后面的按照,否则登录时可能会出现报错,修改完之后重启docker:systemctl restart docker

    [NOTE]
    由于从docker1.3.2版本开始,使用registry时,必须使用TLS保证其安全。我们不用https的话,需要在客户机中增加一个配置文件

    将下载好的安装包harbor-offline-installer-v2.1.0.tgz上传服务器并解压
    tar -xvf harbor-offline-installer-v2.1.0.tgz

    创建配置文件,cp harbor.yml.tmpl harbor.yml
    修改配置,vim harbor.ym,主要修改http选项中的ip和端口

    进行安装,./prepare && ./install.sh
    最后显示"✔ ----Harbor has been installed and started successfully.----"安装成功,执行docker ps查看运行的容器

    查看安装完成后的目录结构

    安装完成后有生成docker-compose.yml文件,后续的服务的启停等操作可以用docker-compose命令,如停止服务docker-compose down,启动服务docker-compose up -d

2、登录验证

  • 访问设置好的ip和端口,我的是http://192.168.2.17:9090

  • 登录,默认的admin用户密码是Harbor12345,也可以在安装的时候通过修改harbor.yml文件来更改。

    可以创建项目,创建用户,给项目分配用户等等,操作都很简单 。

3、上传镜像

  • 首先要登陆私有仓库,可以使用admin或者创建好的拥有对应权限的用户
    docker login -u admin -p Harbor12345 192.168.2.17:9090

  • 上传自己的镜像
    docker tag postgres:11.8 192.168.2.17:9090/library/postgres:11.8,其中library是项目名称,可以自己创建,我用的是默认的
    docker push 192.168.2.17:9090/library/postgres:11.8

    [NOTE]
    若之前没有配置/etc/docker/daemon.json文件的话,这一步可能会出现报错:Error response from daemon: Get https://192.168.2.17:9090/v2/: http: server gave HTTP response to HTTPS client

    登录网页查看

    至此完成Harbor的简单部署!

posted @ 2020-10-27 17:50  灬夜露沁心灬  阅读(176)  评论(0编辑  收藏  举报