使用docker搭建「企業級鏡像倉庫」Harbor

1、前沿mysql

docker的官方鏡像倉庫registry,功能比較單一,不太好用,特別是刪除鏡像操做,不夠友好。nginx

Harbor是一個用於存儲和分發Docker鏡像的企業級Registry服務器,經過添加一些企業必需的功能特性,sql

例如安全、標識和管理等,擴展了開源Docker Distribution。做爲一個企業級私有Registry服務器,docker

Harbor提供了更好的性能和安全。提高用戶使用Registry構建和運行環境傳輸鏡像的效率。json

Harbor支持安裝在多個Registry節點的鏡像資源複製,鏡像所有保存在私有Registry中,vim

確保數據和知識產權在公司內部網絡中管控。另外,Harbor也提供了高級的安全特性,諸如用戶管理,訪問控制和活動審計等。安全

安裝環境:服務器

1 Linux UbuntuServer 4.4.0-103-generic #126-Ubuntu SMP Mon Dec 4 16:23:28 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
2 Docker version 17.09.1-ce, build 19e2cf6
3 docker-compose version 1.17.1, build 6d101fb

2、安裝docker(略)網絡

3、安裝docker-compose(略)tcp

4、安裝Harbor

下載Harbor

wget http://harbor.orientsoft.cn/harbor-v1.3.0/harbor-offline-installer-v1.3.0.tgz

解壓

tar -xzvf harbor-offline-installer-v1.3.0.tgz

獲得安裝配置文件

這裏使用HTTP Insecure Registry。

打開harbor.cfg,修改hostname = 本機ip:端口,默認是80端口,若是80被佔用,則須要換端口,好比hostname = 10.0.3.16:7077,

同時打開docker-compose.yml,修改ngxin的轉發端口,好比:

proxy:
    image: vmware/nginx-photon:1.11.13
    container_name: nginx
    restart: always
    volumes:
      - ./common/config/nginx:/etc/nginx:z
    networks:
      - harbor
    ports:
      - 7077:80
      - 4433:4433
      - 4443:4443
    depends_on:
      - mysql
      - registry
      - ui
      - log
    logging:
      driver: "syslog"
      options:
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "proxy"

而後保存,啓動Harbor:

./install.sh

查看各容器狀態:

docker-compose ps

確保各容器狀態都在「up」,便可訪問管理界面http://10.0.3.16:7077

各容器的日誌記錄在:/var/log/harbor/

用戶名admin,密碼:Harbor12345,配置文件harbor.cfg裏有。

5、嘗試上傳和拉取鏡像

登錄Harbor以後,建立一個項目,並選擇「公開」:

能夠看到此時項目裏沒有鏡像:

如今上傳一個鏡像,上傳以前因爲Harbor使用的HTTP Insecure Registry模式,因此須要設置docker容許使用Insecure Registry。

vim /etc/docker/daemon.json

寫入insecure-registries

{
 "registry-mirrors": ["https://registry.docker-cn.com"],
 "insecure-registries": [
       "10.0.3.16:7077"
  ]

}

重啓docker:

1 systemctl daemon-reload
2 systemctl restart docker

上傳一個修改過的busybox:

1 docker pull busybox
2 docker tag busybox 10.0.3.16:7077/myregistry/busybox:v1.0
3 docker login 10.0.3.16:7077 # 用戶名:admin,密碼:Harbor12345
4 docker push 10.0.3.16:7077/myregistry/busybox:v1.0

能夠看到Harbor倉庫裏面已經有了:

換一臺機器,嘗試拉取:

docker pull 10.0.3.16:7077/myregistry/busybox:v1.0

也是能夠的。

6、參考:

https://blog.csdn.net/nklinsirui/article/details/87924176

Harbor各版本:http://harbor.orientsoft.cn/

相關文章
相關標籤/搜索