1. 程式人生 > >『高級篇』docker之鏡像倉庫(20)

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

r12 cal https art zookeepe -i amp 最大的 穩定

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

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

公有倉庫

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

技術分享圖片

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

技術分享圖片

技術分享圖片

私有倉庫(一)

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

docker pull registry:2

技術分享圖片

技術分享圖片

  • 安裝說明

    官方的安裝說明

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

技術分享圖片

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

技術分享圖片

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

私有倉庫(二)

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

  • 準備工作

    選擇線下安裝

技術分享圖片

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

技術分享圖片

  • 修改配置文件

    修改紅色部分

cd harbor
ll
vi harbor.cfg

技術分享圖片

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

vi docker-compose.yml

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

  • 安裝

技術分享圖片

  • 奇葩問題

想在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方面的人,幫忙解答下。

技術分享圖片

技術分享圖片

vagrant 方式安裝

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

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

    技術分享圖片

技術分享圖片

vi docker-compose.yml

技術分享圖片

  • 安裝
    ./install.sh 

    技術分享圖片

技術分享圖片

  • 瀏覽

    ifconfig

    技術分享圖片

  • 訪問harbor

    http://172.28.128.3:8888
    用戶名:admin
    密碼:Harbor12345

技術分享圖片

技術分享圖片

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

技術分享圖片

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

技術分享圖片

技術分享圖片

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

技術分享圖片

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

技術分享圖片

  • 復制功能

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

技術分享圖片

  • 創建用戶

技術分享圖片

  • 添加成員

    分配開發人員
    技術分享圖片

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

本地的微服務鏡像推送

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

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

技術分享圖片

  • 上傳基礎鏡像

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

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

技術分享圖片

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
  • 配置地址:登錄服務器上。

技術分享圖片

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

技術分享圖片

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

技術分享圖片

技術分享圖片

  • 再次上傳基礎鏡像
    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

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

推送微服務到倉庫中

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

  • 6個微服務Dockerfile

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

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

  • 6個sh腳本修改增加了推送功能
    技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

查看倉庫

8個鏡像全部到位

技術分享圖片

技術分享圖片

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

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