網(wǎng)絡(luò)科技公司 網(wǎng)站建設(shè)百度廣告推廣費用
什么是倉庫
倉庫(Repository)是存儲和分發(fā) Docker 鏡像的地方。鏡像倉庫類似于代碼倉庫,Docker Hub 的命名來自 GitHub,Github 是我們常用的代碼存儲和分發(fā)的地方。同樣 Docker Hub 是用來提供 Docker 鏡像存儲和分發(fā)的地方。
談到鏡像倉庫,有兩個需要區(qū)分的概念
- 注冊服務(wù)器 docker.hub
- 倉庫(具體的項目,類似目錄,目錄可以同時管理多個鏡像) --jenkins/jenkins
Docker 鏡像發(fā)布到公共倉庫步驟
- 注冊 Docker Hub 賬號 (https://hub.docker.com)
- 創(chuàng)建倉庫,新建一個倉庫用于推送鏡像。
創(chuàng)建倉庫的時候右邊會有上傳到倉庫的相關(guān)命令的提示,可以參考記錄一下
- 本地docker login
- 本地docker tag
給本地鏡像打個tag標(biāo)簽。標(biāo)記本地鏡像,將其歸入某一倉庫。
相當(dāng)于重新復(fù)制鏡像并重命名為docker賬戶名/倉庫名稱。這個命令其實就是在我們前面創(chuàng)建倉庫的時候給的提示的代碼。
- docker push
用registry搭建私有化鏡像倉庫
1.運行registry容器
啟動命令:
docker run -v /var/lib/registry/data:/var/lib/registry -d -p 5000:5000 --name registry registry:2.7
意味著本地訪問通過 http://120.25.253.110:5000
- docker tag
示例
docker tag hello-world:latest 120.25.253.110:5000/hello_world
- docker push
docker push 120.25.253.110:5000/hello_world
用Harbor搭建私有化鏡像倉庫
- 下載安裝包,wget https://github.com/goharbor/harbor/releases/download/v2.1.4/harbor-online-installer-v2.1.4.tgz
- 解壓,tar -zxvf harbor-online-installer-v2.1.4.tgz
- docker compose 安裝
Linux 上我們可以從 Github 上下載它的二進制包來使用,最新發(fā)行的版本地址:https://github.com/docker/compose/releases。
運行以下命令以下載 Docker Compose 的當(dāng)前穩(wěn)定版本:
$ sudo curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose-(uname?s)?(uname -s)-(uname?s)?(uname -m)” -o /usr/local/bin/docker-compose
要安裝其他版本的 Compose,請?zhí)鎿Q 1.24.1。
將可執(zhí)行權(quán)限應(yīng)用于二進制文件:
$ sudo chmod +x /usr/local/bin/docker-compose
創(chuàng)建軟鏈:
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
測試是否安裝成功:
$ docker-compose --version
cker-compose version 1.24.1, build 4667896b
- 改配置,修改harbor.yml.tmpl文件名,改為harbor.yml,vi harbor.ym 更改host 和ssl 等
- 域名相關(guān)
如果遇到報錯:ERROR:root:Please specify hostname, 那原因是啟動harbor時沒有修改harbor.yml里的內(nèi)容。
解決辦法
把配置文件中默認的hostname: reg.mydomain.com, 改為本地的ip。
比如: hostname:10.6.119.106- 認證證書相關(guān)
如果遇到報錯:ERROR:root:Error: The protocol is https but attribute ssl_cert is not set。 原因是harbor.yml中默認是配置https的端口及證書路徑的。
解決辦法
是把這些配置都注釋掉。
#https related config
#https: # 注釋掉
##https port for harbor, default is 443
#port: 443 # 注釋掉
##The path of cert and key files for nginx
#certificate: /your/certificate/path # 注釋掉
#private_key: /your/private/key/path # 注釋掉
- 執(zhí)行.prepare命令,更新配置文件
- 啟動Harbor,當(dāng)修改完配置文件后,執(zhí)行./install.sh
- 登錄&使用
初始的默認用戶是admin,密碼是Harbor12345,登錄成功:
推送鏡像到harbor上
- 登錄Harbor倉庫:
docker login 120.25.253.110
可能遇到錯誤
可以修改本機Host的/etc/docker/daemon.json,如果沒有這個文件,就創(chuàng)建它,并在里面"insecure-registries"的值追加"120.25.253.110",文件內(nèi)容如下List-3.1所示,最重要的是"insecure-registries":[“120.25.253.110”],不然我們login或者推送鏡像到120.25.253.110上時會報錯。
{“bip”: “172.172.172.1/24”,“insecure-registries”: [“10.221.128.52”,“120.25.253.110”]}
- 標(biāo)記要推送的鏡像:
docker tag nginx:latest 120.25.253.110/dapengtest/nginx:1.0
如下圖根據(jù)harbor的項目推送提示,標(biāo)記本地鏡像
3. 推送標(biāo)記的鏡像:
docker push 120.25.253.110/dapengtest/nginx:1.0
harbor倉庫查看已經(jīng)推送過來