『高級篇』docker之鏡像倉庫(20)

>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『高級篇』docker之鏡像倉庫(20)

三步走的第二步,開始查看鏡像倉庫,就一起學一學docker倉庫,倉庫分2種,別人家的倉庫也叫公共倉庫,自己的倉庫也叫私有倉庫。公共倉庫和私有倉庫最大的卻別就是網速,公共倉庫從公網,私有倉庫是從局域網,速度的差別,安全性,公共的肯定沒有私有的安全,保存在自己的硬盤上是最穩的。其實在中級的時候我已經說過docker倉庫的創建,這次用mac本來實現docker倉庫的創建。源碼:https://github.com/limingios/msA-docker

公有倉庫

最權威的公有倉庫就是hub.docker.com

『高級篇』docker之鏡像倉庫(20)

  • 打包
docker tag zookeeper:3.5 zhugeaming/zookeeper:3.5
docker login
docker push zhugeaming/zookeeper:3.5

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

私有倉庫(一)

https://hub.docker.com/_/registry/

docker pull registry:2

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

  • 安裝說明

    官方的安裝說明

docker run -d -p 5000:5000  --name registry registry:2

『高級篇』docker之鏡像倉庫(20)

  • push 到本地的registry
    docker tag zookeeper:3.5 localhost:5000/zookeeper:3.5
    docker push localhost:5000/zookeeper:3.5

『高級篇』docker之鏡像倉庫(20)

在生產環境下,並不能滿足要求,單點登錄,一個服務器出了問題,另一個服務器就很難託管過來,它並沒有界面,給他交互不是很方便。
所以業內又出現了一個新的叫harbor,更適合生產環境中。

私有倉庫(二)

https://github.com/goharbor/harbor/
詳細往下看 最終我放棄了mac下直接安裝harbor,通過vagrant的方式虛擬機來安裝harbor

  • 準備工作

    選擇線下安裝

『高級篇』docker之鏡像倉庫(20)

cp Downloads/harbor-offline-installer-v1.6.1.tgz ~/app/
cd ~/app
tar -xvf harbor-offline-installer-v1.6.1.tgz

『高級篇』docker之鏡像倉庫(20)

  • 修改配置文件

    修改紅色部分

cd harbor
ll
vi harbor.cfg

『高級篇』docker之鏡像倉庫(20)

方便管理,mac系統管理,修改存儲路徑

vi docker-compose.yml

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

  • 安裝

『高級篇』docker之鏡像倉庫(20)

  • 奇葩問題

想在mac上安裝一個harbor 下載了harbor-offline-installer-v1.6.1.tgz

  1. 將文件放在了mac本的/user/liming/app/目錄下,並解壓
  2. 修改了配置文件和掛載文件的路徑。
  3. 運行install的時候必須加sudo,負責權限不足,加了sudu後可以正常安裝並安裝成功。
  4. 但是剩餘的問題來了,裏面的容器無法訪問掛載的配置文件,提示權限不足。爲了彌補權限不足的問題,我在docker-compose.yml做了配置都增加了
    privileged: true,但是不生效,困擾了幾天身邊沒有docker方面的人,幫忙解答下。

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

vagrant 方式安裝

https://github.com/limingios/msA-docker/tree/master/vagrant/harbor

  • 修改host文件和端口,可以不修改端口
    vi harbor.cfg

    『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

vi docker-compose.yml

『高級篇』docker之鏡像倉庫(20)

  • 安裝
    ./install.sh 

    『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

library 公開的所有用戶都可以push

『高級篇』docker之鏡像倉庫(20)

添加項目micro-service,私有項目

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

點擊項目可以進入項目中。

『高級篇』docker之鏡像倉庫(20)

  • 添加成員
    1. 項目管理員 等於 admin
    2. 開發人員 等於 對項目的鏡像 有push 和pull的權限
    3. 訪客 等於 只有 pull的權限

『高級篇』docker之鏡像倉庫(20)

  • 複製功能

    生產環境,很多的機房,每個機房之間的網速是很快的,但是跨機房的,可能網速的穩定性和速度就差一些,每個機房部署一個harbor,在通過一箇中心的harbor,當有鏡像的自動去同步其他的服務器,複製規則是可以針對項目的,每個項目自己的一個複製規則。

『高級篇』docker之鏡像倉庫(20)

  • 創建用戶

『高級篇』docker之鏡像倉庫(20)

  • 添加成員

    分配開發人員
    『高級篇』docker之鏡像倉庫(20)

Harbor其實操作很簡單,隨便點點都瞭解了。

本地的微服務鏡像推送

現在想想辦法把鏡像都推送到mico-service裏面

  • host文件修改
    sudo vi /etc/hosts 

『高級篇』docker之鏡像倉庫(20)

  • 上傳基礎鏡像

    hub.idig88.com 已經配置了基礎

    docker tag java:openjdk-8 hub.idig88.com:8888/micro-service/java:openjdk-8

『高級篇』docker之鏡像倉庫(20)

The push refers to repository [hub.idig88.com:8888/micro-service/java]
Get https://hub.idig88.com:8888/v2/: http: server gave HTTP response to HTTPS client
  • 配置地址:登錄服務器上。

『高級篇』docker之鏡像倉庫(20)

vi /usr/lib/systemd/system/docker.service 
service docker restart

『高級篇』docker之鏡像倉庫(20)

配置地址:本機mac。修改後點擊app& Restart

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

  • 再次上傳基礎鏡像
    docker login http://hub.idig88.com:8888 -u liming -p 密碼
    docker push  hub.idig88.com:8888/micro-service/java:openjdk-8
    docker tag python:3.6 hub.idig88.com:8888/micro-service/python:3.6
    docker push hub.idig88.com:8888/micro-service/python:3.6

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

推送微服務到倉庫中

已經將基礎的鏡像推送到了鏡像倉庫中,現在需要修改對應的dockerfile文件,更改基礎鏡像的名稱。修改配置文件

  • 6個微服務Dockerfile

    From hub.idig88.com:8888/micro-service/

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

  • 6個sh腳本修改增加了推送功能
    『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

查看倉庫

8個鏡像全部到位

『高級篇』docker之鏡像倉庫(20)

『高級篇』docker之鏡像倉庫(20)

PS:經歷了2天大概做了不下20小時,我最終還是放棄了mac下安裝harbor的方式,時刻要記住mac只是個編輯器,不要什麼都在上邊裝,很多時候通過虛擬機更類似生成環境。這一次說完了docker倉庫,下次開始服務編排工具。感覺好爽啊!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章