Harbor鏡像倉庫搭建
一、環境準備 (Linux系統,聯網服務器)
須要安裝docker, docker-compose
1.1Docker 安裝
# yum 包更新
[root@centos7 ~]# yum updatepython
# 卸載舊版本 Docker
[root@centos7 ~]# yum remove docker docker-common docker-selinux docker-enginelinux
# 安裝軟件包
[root@centos7 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2git
# 添加 Docker yum源
[root@centos7 ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repodocker
# 安裝 Docker
[root@centos7 ~]# yum -y install docker-ce數據庫
# 啓動 Docker
[root@centos7 ~]# systemctl start dockerjson
# 查看 Docker 版本號
[root@centos7 ~]# docker --version
————————————————
1.2 Docker Compose 安裝
# 安裝 epel-release
[root@centos7 ~]# yum install epel-releasevim
# 安裝 python-pip
[root@centos7 ~]# yum install -y python-pipcentos
# 安裝 docker-compose
[root@centos7 ~]# pip install docker-composeapi
# 安裝 git
[root@centos7 ~]# yum install git瀏覽器
# 查看 docker-compose 版本號
[root@centos7 ~] docker-compose -version
————————————————
2. 安裝Harbor
2.1 Harbor 下載與安裝
#在線下載Harbor安裝包
wget https://storage.googleapis.com/harbor-releases/release-1.9.1/harbor-online-installer-v1.9.1.tgz
#解壓安裝包
tar xf harbor-online-installer-v1.8.1.tgz
#進入harbor目錄
cd harbor
#修改主機名和管理員密碼、數據庫密碼
vim harbor.yml
#修改內容
-----------------------------------------------------------------------------------
hostname: 10.0.0.11 #修改IP爲服務器對外IP
harbor_admin_password: 123456 #修改Harbor admin密碼
database:
password: 123456 #修改數據庫密碼
--------------------------------------------------------------------------------------
#安裝
./install.sh
#接下來就是漫長的等待
2.2 Harbor 訪問
安裝完成以後,打開瀏覽器http:10.0.0.11,就能看到Harbor的界面了。
這裏還要在說一個問題
Harbor是搭建完成了,在咱們上傳項目的時候可能會出現一些問題
docker login 10.0.0.11
Username: admin
Password:
Error response from daemon: Get https://10.0.86.193/v1/users/: dial tcp 10.0.86.193:443: getsockopt: connection refused
在咱們進行登陸上傳代碼的時候,會報出這樣的錯誤
這是由於docker1.3.2版本開始默認docker registry使用的是https,咱們設置Harbor默認http方式,因此當執行用docker login、pull、push等命令操做非https的docker regsitry的時就會報錯。
解決辦法:
一、若是是在Harbor本機登陸能夠這樣作以下解決
若是系統是MacOS,則能夠點擊「Preference」裏面的「Advanced」在「Insecure
Registry」里加上10.0.86.193,重啓Docker客戶端就能夠了。
若是系統是Ubuntu,則修改配置文件/lib/systemd/system/docker.service,修改[Service]下ExecStart參數,增長–insecure-registry
10.0.86.193。
若是系統是Centos7,能夠在/etc/docker/daemon.json 加上以下內容(注意是json字符串)
{
"insecure-registries": [
"10.0.86.193"
]
}
打開docker-compose.yml添加以下內容,注意前邊的空格
而後咱們執行docker-compose stop
./install.sh
再次登陸就OK了
[root@docker02appl]# docker login 10.0.0.11
Username(admin): admin
Password:
Login Succeeded
二、若是是遠程登陸的話,也會出現這個錯誤
查找Docker的服務文件:登陸到已經安裝Docker的服務器,輸入 systemctl status docker查看Docker的service文件。
編輯docker.service文件:在ExecStart處添加 –insecure-registry 參數,後邊跟的是你Harbor的IP地址。
從新加載service文件,重啓docker服務,重啓docker-compose服務。
systemctl daemon-reload
systemctl restart docker
docker-compose restart
再次登陸:
docker login [ip地址或域名](Harbor地址,harbor.cfg文件中的hostname項)
//根據提示分別輸入用戶名和密碼
**附上拉取和推送的命令:**
3\.Harbor私服的使用
#推送以前先登陸Harbor docker login 10.0.86.193 admin Harbor12345 提示success登陸成功 查看本身有哪些鏡像;docker images 把須要上傳到Harbor的鏡像運行以下命令就能夠了 #鏡像打標籤 [root@centos7 ~]#docker tag 鏡像名:標籤 私服地址/倉庫項目名/鏡像名:標籤 #推送到私服 [root@centos7 ~]#docker push 私服地址/倉庫項目名/鏡像名:標籤 #從私服拉取鏡像 [root@centos7 ~]#docker pull 私服地址/倉庫項目名/鏡像名:標籤