『高階篇』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,私有專案
點選專案可以進入專案中。
- 新增成員
- 專案管理員 等於 admin
- 開發人員 等於 對專案的映象 有push 和pull的許可權
- 訪客 等於 只有 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 pushhub.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倉庫,下次開始服務編排工具。感覺好爽啊!
ofollow,noindex" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename=https://idig8.com/2018/10/23/gaojipiandockerzhijingxiangcangku20/">百度未收錄
>>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>>原文連結地址:上一篇:已是最新文章