一、環境配置
1、宿主機系統:macOS Sequoia(版本15.2)
2、虛擬機VMware Fusion版本:專業版 13.6.2 (24409261)
3、虛擬機系統:AlmaLinux-9-latest-x86_64-boot.iso
二、安裝Harbor開源企業級Docker鏡像
Harbor?是一個開源的企業級?Docker 鏡像?倉庫,提供了許多功能,包擴用戶管理、訪問控制、鏡像復制和安全掃描;Harbor是一個用于存儲和分發Docker鏡像的企業級Registry服務器。
Harbor是一個用于存儲和分發Docker鏡像的企業級Registry服務器,通過添加一些企業必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。
1、安裝Harbor
1.1環境準備
1.1.1查看虛擬機IP命令:
ifconfig
1.1.2查看防火墻狀態
防火墻操作比較好的文章:https://zhuanlan.zhihu.com/p/612481340
查看防火墻狀態:
systemctl status firewalld
關閉防火墻:
systemctl stop firewalld
開啟防火墻:
systemctl start firewalld
重新加載防火墻規則:
firewall-cmd --reload
1.1.3關閉內核安全機制,(這個在網上查看資料的時候有大神關閉了,但是我沒關閉也成功了,暫且記錄一下)
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
1.2部署Docker和Docker Compose
1.2.1部署Docker
1.2.1.1卸載系統之前的Docker鏡像,因我是新裝的虛擬機什么都沒安裝,我直接執行,方法記錄一下
# 安裝前先更新yum,不然有可能出現本機無法連接虛擬機的mysql、redis等
sudo yum update
# 卸載系統之前的docker,以及 docker-cli
sudo yum remove docker-ce docker-ce-cli containerd.io
# 卸載系統之前的docker
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
?
1.2.1.2安裝必須的依賴
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
1.2.1.3設置 docker repo 的 yum 位置
# 配置鏡像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.2.1.4安裝 docker,以及 docker-cli
sudo yum install -y docker-ce docker-ce-cli containerd.io
1.2.1.5配置 docker 加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.2.1.6啟動 docker & 設置 docker 開機自啟
systemctl enable docker
1.2.1.7查看docker版本
docker -v
1.2.2部署Docker-Compose服務
Harbor是需要Docker-Compose服務做支撐的
1.2.2.1下載最新Docker-Compose
# 下載阿里云docker-compose二進制文件
# curl -L https://mirrors.aliyun.com/docker-toolbox/linux/compose/1.21.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
# 下載github最新docker-compose版本
sudo curl -L "https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加可執行權限
chmod +x /usr/local/bin/docker-compose
這里要注意:
第一次安裝我也是安裝的阿里的最新鏡像,1.21.2,安裝完畢,啟動一直報錯
ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.
For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/
這個問題就是因為版本問題導致的,把阿里的鏡像換成github的再次下載docker-compose問題解決,卡了我一天
解決方案一:?
按照這種解決錯誤會變為,沒有根本解決
1.2.2.2查看Docker-Compose版本
docker-compose -v
?1.3部署Harbor服務
官網地址:Releases · goharbor/harbor · GitHub
1.3.1下載并解壓Harbor安裝包,這里要文明上網!!!!,另外下載解壓的時候要注意存放的文件位置
sudo wget https://github.com/goharbor/harbor/releases/download/v2.12.2/harbor-offline-installer-v2.12.2.tgz
sudo tar xvf harbor-offline-installer-v2.12.2.tgz
1.3.2配置Harbor參數文件
解壓后,在目錄下會生成一個harbor.yml.tmpl文件(復制harbor.yml.tmpl并重命名為harbor.yml)。修改harbor.yml
# 拷貝一份Harbor的配置文件
[root@localhost ~]# cp /usr/local/harbor/harbor.yml.tmpl /usr/local/harbor/harbor.yml
[root@localhost ~]# vim /usr/local/harbor/harbor.yml
# 修改hostname,修改為自己的IP地址
hostname: 192.168.119.133
# 將https段的內容全部注釋,這里不使用https訪問
#################################################################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################################################################# 對配置文件進行語法檢查,將會自動拉取必要的鏡像
[root@localhost ~]# /usr/local/harbor/prepare
1.3.3啟動Harbor
在解壓的目錄下運行./install.sh腳本開始安裝。安裝過程中會檢查環境、配置文件等,并下載所需的Docker鏡像。
# 需要一點時間,等待安裝回顯結束即可
[root@localhost ~]# sh /usr/local/harbor/install.sh
?1.3.4查看Harbor啟動鏡像
docker-compose ps
1.3.5訪問私有倉庫
訪問地址:虛擬機的地址,不用端口
用戶名:zaiharbor.yml文件里有,默認:admin
密碼:文件里有,默認:Harbor12345
?三、使用docker上傳鏡像到Harbor
3.1服務器本機上操作
3.1.1本機登錄
# 使用 docker 進行登錄和推送,在推送鏡像之前要做一次登錄
docker login -u admin -p Harbor12345 http://127.0.0.1
3.1.2本機拉取鏡像
這里先描述一個問題,就是使用docker search mysql一直不通過各種配置,各種搜索問題依舊沒有解決,暫時記錄一下處理過程,哪位大神有思路一起交流
解決步驟:
1、修改ifcfg-enp0s3,我用的almalinux這個文件夾下沒有這個文件,我手動配置,但是問題沒解決
cd /etc/sysconfig/network-scripts/vim ifcfg-enp0s3 加入DNS1=8.8.8.8
修改resolv.conf?
vim /etc/resolv.conf加入
nameserver 8.8.8.8
重啟網絡:問題沒解決呀
# 使用這個命令會報錯
systemctl restart network# 使用
systemctl restart NetworkManagersystemctl status NetworkManager
2、修改DNS
# 文件地址
sudo vim /etc/resolv.conf# 文件內容
; generated by /usr/sbin/dhclient-script
nameserver 114.114.114.114.
nameserver 8.8.8.8
options edns0 trust-ad
search localdomain
修改docker的daemon.json文件
# 文件位置
sudo vim /etc/docker/daemon.json# 文件內容
{"max-concurrent-downloads": 10,"max-concurrent-uploads": 5,"default-shm-size": "1G","debug": true,"experimental": false,"registry-mirrors": ["https://docker.registry.cyou","https://docker-cf.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.jsdelivr.fyi","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://docker.mirrors.ustc.edu.cn","https://mirror.iscas.ac.cn","https://docker.rainbond.cc"]
}# 修改完畢要重啟
sudo systemctl daemon-reload
sudo systemctl restart docker
問題依舊,但是可以拉取鏡像,哪位大神有經歷可以幫忙看一下。先走下邊的流程
3.1.3拉取鏡像
[root@localhost ~]# docker pull mysql:5.6
3.1.4將鏡像打標簽
# push上傳鏡像必須要以,以下格式進行打標簽
# 格式:私有倉庫IP地址/項目名稱/鏡像標簽
[root@localhost ~]# docker tag mysql:5.6 127.0.0.1/wj_demo/mysql:v1
3.1.5上傳鏡像到Harbor
docker push 127.0.0.1/wj_demo/mysql:v1
?3.2宿主機/其他客戶端上傳鏡像到docker倉庫服務器
在宿主機上配置鏡像倉庫地址
#在宿主機上查看docker安裝位置
docker info
#在信息列表中找到.docker文件夾路徑,進入.docker文件夾修改daemon.json文件?
添加insecure-registries信息,IP為虛擬機地址,80為harbor.yml文件中配置的端口
準備上傳
1、登陸
docker login -u 用戶名 -p 密碼 IP:端口
2、打包
3、推送
4、宿主機拉取鏡像
docker pull 172.16.156.128:80/wj_demo/mysql5.7:v1