文章目錄
- docker私有化倉庫介紹
- 私有倉庫介紹
- 私有鏡像倉庫有哪些有優點?
- 實驗環境規劃
- 使用registry搭建docker私有倉庫
- 初始化實驗環境-安裝docker
- 開啟包轉發功能和修改內核引數
- 配置xuegod64為docker私有倉庫服務端
- 配置xuegod63上的docker使用xuegod64上的私有倉庫
- 實戰-上傳本地鏡像到私有倉庫
- 實戰:使用 harbor 搭建Docker私有倉庫
- 為harbor簽發證書
- 安裝harbor
- harbor 影像化界面使用說明
- 在xuegod63上測驗使用xuegod64的harbor鏡像倉庫
- 從harbor倉庫下載鏡像
- 使用阿里云私有倉庫存盤自己的docker鏡像
docker私有化倉庫介紹
私有倉庫介紹
dockerhub大家還記著是干什么的嗎?
存放鏡像的,公共倉庫
官方網站:
Docker hub 官網:https://registry.hub.docker.com
有時候使用Docker Hub這樣的公共倉庫可能不方便(有時候無法訪問),用戶可以創建一個本地倉庫供私人使用,可以使用官方提供的工具docker-registry來配置私有鏡像倉庫
1、使用官方提供的工具來配置
docker-registry 是官方提供的工具,可以用于構建私有的鏡像倉庫,
registry [?red??stri] 記錄,登記
私有鏡像倉庫有哪些有優點?
私有倉庫好處:
1、速度快
2、維護方便
3、安全
搭建私有倉庫的思路:
老的思路:下載原始碼tar/yum安裝 -》 安裝-》修改組態檔-》啟動服務
使用docker思路:直接下載并使用registry鏡像啟動docker實體,這樣倉庫就搭建成功了,
有了docker以后,所有軟體不再以office.exe 或lrzsz.rpm形式發布,而以docker鏡像發布,你只需要下載docker鏡像并運行一個docker實體,有了docker以后,再也不用為安裝linux服務而發愁!
實驗環境規劃
實驗環境:
docker私有倉庫地址:xuegod64 xuegod64機器需要的記憶體至少要2G,我分配的是6G
docker服務器地址 : xuegod63 ,xuegod63會使用xuegod64上docker私有倉庫來pull/push鏡像,實驗拓撲圖:

使用registry搭建docker私有倉庫
Docker服務:
主機名為xuegod63
主機ip: 192.168.1.63(這個ip大家可以根據自己所在環境去配置,配置成靜態IP)
配置:4vCPU/4Gi記憶體
準備實驗環境:
新創建一臺centos7.6 64位虛擬機
主機名為xuegod64
主機ip: 192.168.1.64(這個ip大家可以根據自己所在環境去配置,配置成靜態IP)
配置:4vCPU/4Gi記憶體
初始化實驗環境-安裝docker
#配置靜態IP
把虛擬機或者物理機配置成靜態ip地址,這樣機器重新啟動后ip地址也不會發生改變,以xuegod64主機為例,修改靜態IP:
修改/etc/sysconfig/network-scripts/ifcfg-ens33檔案,變成如下:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.1.64
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
#修改組態檔之后需要重啟網路服務才能使配置生效,重啟網路服務命令如下:
service network restart
#配置主機名:xuegod64
hostnamectl set-hostname xuegod64
#在xuegod63和xuegod64上配置hosts檔案,讓兩臺主機hosts檔案保持一致
[root@xuegod63 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 xuegod63
192.168.1.64 xuegod64
[root@xuegod64 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 xuegod63
192.168.1.64 xuegod64
#關閉firewalld防火墻
[root@xuegod64 ~]# systemctl stop firewalld ; systemctl disable firewalld
#關閉iptables防火墻
[root@xuegod64 ~]# yum install iptables-services -y #安裝iptables
#禁用iptables
[root@xuegod64 ~]# service iptables stop && systemctl disable iptables
清空防火墻規則
[root@xuegod64 ~]# iptables -F
#關閉selinux
[root@xuegod64 ~]# setenforce 0 #臨時禁用
#永久禁用
[root@xuegod64 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
注意:修改selinux組態檔之后,重啟機器,selinux才能永久生效
[root@xuegod64 ~]# getenforce
Disabled
#配置時間同步
[root@xuegod64 ~]# ntpdate cn.pool.ntp.org
#撰寫計劃任務
crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
重啟crond服務使配置生效:
service crond restart
方法1:在線安裝docker-ce , 配置國內docker-ce的yum源(阿里云)
[root@xuegod64 ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
配置docker-ce的離線yum源:
方法2:推薦大家使用離線安裝,下面需要的k8s-docker.tar.gz壓縮包私信我
[root@xuegod64 ~]# tar xf k8s-docker.tar.gz -C /opt/
[root@xuegod64 ~]# tee /etc/yum.repos.d/k8s-docker.repo << ‘EOF’
[k8s-docker]
name=k8s-docker
baseurl=file:///opt/k8s-docker
enable=1
gpgcheck=0
EOF
安裝基礎軟體包
[root@xuegod64 ~]# yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl
curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release
openssh-server socat ipvsadm conntrack ntpdate telnet
安裝docker環境依賴
[root@xuegod64 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
安裝docker-ce
[root@xuegod64 ~]# yum install docker-ce docker-ce-cli containerd.io -y
注:docker-ce-cli 作用是docker命令列工具包
containerd.io 作用是容器介面相關包
yum info 軟體包的名字,可以查看一個包的具體作用,
#啟動docker服務
[root@xuegod64 ~]# systemctl start docker && systemctl enable docker
#查看Docker 版本資訊
[root@xuegod64 ~]# docker version
[root@xuegod64 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2021-04-20 10:07:23 CST; 9s ago
開啟包轉發功能和修改內核引數
內核引數修改:
[root@xuegod64 ~]# modprobe br_netfilter
[root@xuegod64 ~]# echo "modprobe br_netfilter" >> /etc/profile
[root@xuegod64 ~]# cat > /etc/sysctl.d/docker.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
[root@xuegod64 ~]# sysctl -p /etc/sysctl.d/docker.conf
#重啟docker
[root@xuegod64 ~]# systemctl restart docker
什么是br_netfilter?
linux iptables/netfilter通過和linux bridge功能聯動,以實作透明防火墻功能,
透明防火墻(Transparent Firewall)又稱橋接模式防火墻(Bridge Firewall),簡單來說,就是在網橋設備上加入防火墻功能,透明防火墻具有部署能力強、隱蔽性好、安全性高的優點,
為什么要執行modprobe br_netfilter?
在/etc/sysctl.conf中添加:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
執行sysctl -p 時出現:
解決方法:
modprobe br_netfilter
還記著net.bridge.bridge-nf-call-ip6tables和net.ipv4.ip_forward嗎?
net.ipv4.ip_forward:
單機docker的網路架構實質上是在宿主機上安裝了一個docker0的網橋,從外部訪問容器內部時只需要訪問宿主機的地址和對應的容器映射的地址,訪問的資料包到宿主機上后經過ip包決議后通過目的port和iptables的規則會將資料包由eth0網卡轉發至docker0網橋上進行下一步路由,所以如果容器的宿主機上的ip_forward未打開,那么該宿主機上的容器則不能被其他宿主機訪問
net.bridge.bridge-nf-call-ip6tables:
默認情況下,從容器發送到默認網橋的流量,并不會被轉發到外部,要開啟轉發:net.bridge.bridge-nf-call-ip6tables = 1
配置xuegod64為docker私有倉庫服務端
1.拉取registry 鏡像, registry鏡像中包括搭建本地私有倉庫的軟體:
registry [?red??stri] 記錄,登記 ; pull 拉 ; push 推
把registry.tar上傳到xuegod64上
匯入本地鏡像:
[root@xuegod64 ~]# docker load -i registry.tar
- 查看registry鏡像
[root@xuegod64 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest 047218491f8c 3 weeks ago 33.17 MB
- 實戰:使用registry鏡像搭建一個私有倉庫
使用registry鏡像搭建一個私有倉庫, registry鏡像中已經把搭建私有庫程式安裝好了,我只需要使用registry鏡像運行一個docker實體就可以了,
registry服務監聽到埠號,默認是5000
[root@xuegod64~]# docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry:latest
e4698f625a56661edd2678269215ba42d4fa41c2da881768a741a72b4a3d0c60
默認情況下,Registry存放鏡像的目錄是/var/lib/registry目錄下,這樣如果容器被洗掉,則存放于容器中的鏡像也會丟失,所以我們一般情況下會指定本地物理機一個目錄如/opt/registry掛載到容器的/var/lib/registry下,使用-v引數,指定本地持久的路徑,
[root@xuegod64~]# ls /opt/registry # 這個目錄會自動創建
[root@xuegod64~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
90cc7afb477e registry:latest "/entrypoint.sh /etc…" 34 seconds ago Up 33 seconds 0.0.0.0:5000->5000/tcp registry
[root@xuegod63 ~]# netstat -antup | grep 5000
tcp6 0 0 :::5000 :::* LISTEN 4032/docker-proxy
說明,私有庫已經啟動成功,
查看私有倉庫中的鏡像串列:
curl http://192.168.1.64:5000/v2/_catalog
{"repositories":[]}
#發現,現在還是空的,后期上傳了本地docker鏡像到私有倉庫中,就有資料了,
配置xuegod63上的docker使用xuegod64上的私有倉庫
修改docker組態檔,指定docker鏡像加速結點為:私有倉庫的地址
[root@xuegod63 ~]# vim /etc/docker/daemon.json
#修改daemon.json檔案,寫入以下內容:
“insecure-registries”: [ “192.168.1.64:35000” ]
修改之后的/etc/docker/daemon.json檔案完整內容如下:
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-
cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-
mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com","https://rncxm540.mirror.aliyuncs.com"
,"https://e9yneuy4.mirror.aliyuncs.com"],
"insecure-registries": [ "192.168.1.64:5000" ]
}
注: --insecure-registry不安全的注冊,這里的不安全指的是走http協議,要想安全傳輸鏡像,需要使用https協議,我們的私有倉庫一般是局域中使用,所以直接使用http協議就可以了,
#重新加載,使配置生效
[root@xuegod63 ~]# systemctl daemon-reload
#重新啟動docker服務
[root@xuegod63 ~]# systemctl restart docker
實戰-上傳本地鏡像到私有倉庫
- 從Docker HUB 上拉取一個測驗鏡像,名字: busybox
本地匯入
上傳busybox.tar鏡像到xuegod63上,作為測驗鏡像,
[root@xuegod63 ~]# docker load -i busybox.tar
[root@xuegod63 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 00f017a8c2a6 2 weeks ago 1.11 MB
注:
BusyBox 概述: BusyBox是一個集成了一百多個最常用Linux命令和工具的軟體,BusyBox 包含了BusyBox一些簡單的工具,例如ls、cat和echo等等,還包含了一些更大、更復雜的工具,例grep、find、mount以及telnet,有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀,簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令,也包含了 Android 系統的自帶的shell,
瑞士軍刀見過沒?

官網: www.busybox.net

2 .為基礎鏡像打個標簽(復制一個鏡像并起一個名字)
語法: docker tag 原鏡像名:標簽 私有倉庫地址/新鏡像名:標簽
執行:
[root@xuegod63 ~]# docker tag busybox:latest 192.168.1.64:5000/busybox:latest
注: 不寫鏡像標簽,默認是:latest
[root@xuegod63 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.64:5000/busybox latest 00f017a8c2a6 4 years ago 1.11MB
3.將剛新打好標簽的192.168.1.64:35000/busybox鏡像,push到xuegod64私有倉庫中,
[root@xuegod63 ~]# docker push 192.168.1.64:5000/busybox
push :把鏡像傳到私有鏡像倉庫
4.登錄xuegod64上,查看鏡像的存盤目錄和檔案
[root@xuegod64 ~]# yum install tree -y
[root@xuegod64 ~]# tree /opt/registry/docker/registry/v2/repositories/
/opt/registry/docker/registry/v2/repositories/
└── busybox #可以看到上傳的鏡像
訪問http://192.168.1.64:5000/v2/_catalog
#可以查看私有倉庫中的鏡像串列,如下圖:
{"repositories":["busybox"]}
3.2.6 實戰-使用私有倉庫中的鏡像創建服務
洗掉鏡像:
語法: docker rmi 鏡像名:標簽
[root@xuegod63 ~]# docker rmi 192.168.1.64:5000/busybox #洗掉鏡像
[root@xuegod63 ~]# docker pull 192.168.1.64:5000/busybox #下載鏡像
[root@xuegod63 ~]# docker images #查看匯入的鏡像
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.1.64:5000/busybox latest 00f017a8c2a6 2 weeks ago 1.11 MB
使用新匯入的鏡像,運行一個新docker實體:
[root@xuegod63 ~]# docker run 192.168.1.64:5000/busybox:latest echo “hello”
hello
運行成功,
總結
搭建私有倉庫步驟:
1、把registry鏡像匯入xuegod64機器
2、基于registry鏡像運行一個docker實體,registry默認監聽5000埠,在宿主機上需要映射5000埠
把鏡像傳到私有倉庫步驟:
1、安裝docker服務
2、修改docker服務鏡像源,改成私有倉庫地址:
"insecure-registries": [ "192.168.1.64:5000" ]
3、把要匯入的鏡像打個標簽如: 192.168.1.64:5000/busybox:latest
4、上傳打了標簽的鏡像到私有倉庫: docker push 192.168.1.64:5000/busybox:latest
從私有倉庫下載鏡像:
1、修改docker服務鏡像源,改成私有倉庫地址:
"insecure-registries": [ "192.168.1.64:5000" ]
2、下載剛才上傳的鏡像 : docker pull 192.168.1.64:5000/busybox:latest
3、查看私有倉庫中的鏡像串列:http://192.168.1.64:5000/v2/_catalog
實戰:使用 harbor 搭建Docker私有倉庫
harbor介紹
Docker容器應用的開發和運行離不開可靠的鏡像管理,雖然Docker官方也提供了公共的鏡像倉庫,但是從安全和效率等方面考慮,部署我們私有環境內的Registry也是非常必要的,Harbor是由VMware公司開源的企業級的Docker Registry管理專案,它包括權限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復制和中文支持等功能,
官網地址:https://github.com/goharbor/harbor

harbor ['hɑ:b?] 海灣
實驗環境:
xuegod64機器需要的記憶體至少要2G,我分配的是6G
注:安裝harbor,系統根磁區的可用空間需要大于6G,否則安裝時會報空間不足,記憶體2G以上
為harbor簽發證書
[root@xuegod64 ~]# mkdir /data/ssl -p
[root@xuegod64 ~]# cd /data/ssl/
生成ca證書:
[root@xuegod64 ssl]# openssl genrsa -out ca.key 3072
#生成一個3072位的key,也就是私鑰
[root@xuegod64 ssl]# openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
#生成一個數字證書ca.pem,3650表示證書的有效時間是3年,按箭頭提示填寫即可,沒有箭頭標注的為空:
[root@xuegod64 ssl]# openssl req -new -x509 -days 3650 -key ca.key -out ca.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:xuegod
Organizational Unit Name (eg, section) []:CA
Common Name (eg, your name or your server's hostname) []:xuegod64.cn
Email Address []:mk@163.com
#生成域名的證書:
[root@xuegod64 ssl]# openssl genrsa -out harbor.key 3072
#生成一個3072位的key,也就是私鑰
[root@xuegod64 ssl]# openssl req -new -key harbor.key -out harbor.csr
#生成一個證書請求,一會簽發證書時需要的,標箭頭的按提示填寫,沒有箭頭標注的為空:
[root@xuegod64 ssl]# openssl req -new -key harbor.key -out harbor.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:BJ
Organization Name (eg, company) [Default Company Ltd]:xuegod
Organizational Unit Name (eg, section) []:CA
Common Name (eg, your name or your server's hostname) []:xuegod64.cn
Email Address []:mk@163.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
簽發證書:
[root@xuegod64 ssl]# openssl x509 -req -in harbor.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out harbor.pem -days 3650
顯示如下,說明證書簽發好了:
查看證書是否有效:
openssl x509 -noout -text -in harbor.pem
顯示如下,說明有效:
Certificate:
Data:
Version: 1 (0x0)
Serial Number:
cd:21:3c:44:64:17:65:40
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=CH, ST=BJ, L=BJ, O=Default Company Ltd
Validity
Not Before: Dec 26 09:29:19 2020 GMT
Not After : Dec 24 09:29:19 2030 GMT
Subject: C=CH, ST=BJ, L=BJ, O=Default Company Ltd, CN=harbor
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (3072 bit)
Modulus:
00:b0:60:c3:e6:35:70:11:c8:73:83:38:9a:7e:b8:
,,,
安裝harbor
#洗掉之前registry容器,防止跟安裝harbor沖突
[root@xuegod64 ssl]# docker rm -f registry
創建安裝目錄
[root@xuegod64 ssl]# mkdir /data/install -p
[root@xuegod64 ssl]# cd /data/install/
安裝harbor
/data/ssl目錄下有如下檔案:
ca.key ca.pem ca.srl harbor.csr harbor.key harbor.pem
[root@xuegod64 install]# cd /data/install/
#把harbor的離線包harbor-offline-installer-v1.5.0.tgz上傳到這個目錄,離線包在課件里提供了,可自行下載:
解壓:
[root@xuegod64 install]# tar zxvf harbor-offline-installer-v1.5.0.tgz
[root@xuegod64 install]# cd harbor
[root@xuegod64 harbor]# ls
#可看到如下目錄:
#common目錄:存放模板配置
#ha目錄:做harbor高可用的
修改組態檔:
[root@xuegod64 harbor]# vim harbor.cfg
hostname = xuegod64
#修改hostname,跟上面簽發的證書域名保持一致
ui_url_protocol = https
#協議用https
ssl_cert = /data/ssl/harbor.pem
ssl_cert_key = /data/ssl/harbor.key
郵件和ldap不需要配置,在harbor的web界面可以配置
其他配置采用默認即可
修改之后保存退出
注:harbor默認的賬號密碼:admin/Harbor12345
安裝docker-compose
方法1:離線上傳docker-compose到服務器上
下載二進制檔案上傳至linux(課程資料已提供docker-compose二進制檔案可直接上傳)
[root@xuegod63 ~]# rz
[root@xuegod63 ~]# mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
添加執行權限
[root@xuegod63 ~]# chmod +x /usr/local/bin/docker-compose
注: docker-compose專案是Docker官方的開源專案,負責實作對Docker容器集群的快速編排,Docker-Compose的工程組態檔默認為docker-compose.yml,Docker-Compose運行目錄下的必要有一個docker-compose.yml,docker-compose可以管理多個docker實體,
方法2:在線安裝:
[root@xuegod63 ~]# curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
添加執行權限
[root@xuegod63 ~]# chmod +x /usr/local/bin/docker-compose
安裝harbor需要的離線鏡像包docker-harbor.tar.gz在課件,可上傳到xuegod64,通過docker load -i解壓
[root@xuegod64 ~]# docker load -i docker-harbor.tar.gz
[root@xuegod64 install]# cd /data/install/harbor
[root@xuegod64 harbor]# ./install.sh --with-notary --with-clair
#clair 開啟鏡像的漏洞掃描,Clair是一個開源專案,它提供了一個工具,通過靜態分析appc和docker容器中的漏洞來監控容器的安全性,Clair是一個API驅動的分析引擎,它逐層檢查容器是否存在已知的安全缺陷,使用Clair,您可以輕松構建為容器漏洞提供連續監視的服務,
安裝程序會出現上面的界面,說明安裝正常,docker ps 顯示如下,說明容器啟動正常
在自己電腦修改hosts檔案
在hosts檔案添加如下一行,然后保存即可
192.168.1.64 xuegod64
擴展:
如何停掉harbor:
你可以使用docker-compose來啟動或關閉Harbor服務,但必須在與docker-compose.yml相同的目錄中運行,
[root@xuegod64 harbor]# cd /data/install/harbor
[root@xuegod64 harbor]# docker-compose stop
或:docker-compose stop -f /data/install/docker-compose.yml
如何啟動harbor:
[root@xuegod64 harbor]# cd /data/install/harbor
[root@xuegod64 harbor]# docker-compose start
docker-compose start
如果docker-compose start啟動harbor之后,還是訪問不了,那就需要重啟虛擬機
harbor 影像化界面使用說明
在瀏覽器輸入:
https://xuegod64
接收風險并繼續,出現如下界面,說明訪問正常
賬號:admin
密碼:Harbor12345
輸入賬號密碼出現如下:
所有基礎鏡像都會放在library里面,這是一個公開的鏡像倉庫
新建專案->起個專案名字test(把訪問級別公開那個選中,讓專案才可以被公開使用)
在xuegod63上測驗使用xuegod64的harbor鏡像倉庫
#修改docker配置
[root@xuegod63 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com","https://rncxm540.mirror.aliyuncs.com","https://e9yneuy4.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.1.64"]
}
修改配置之后使配置生效:
[root@xuegod63 ~]# systemctl daemon-reload && systemctl restart docker
#查看docker是否啟動成功
[root@xuegod63 ~]# systemctl status docker
#顯示如下,說明啟動成功:
Active: active (running) since Fri … ago
注意:
配置新增加了一行內容如下:
"insecure-registries":["192.168.1.64"],
上面增加的內容表示我們內網訪問harbor的時候走的是http,192.168.1.64是安裝harbor機器的ip
登錄harbor:
[root@xuegod63]# docker login 192.168.1.64
Username:admin
Password: Harbor12345
輸入賬號密碼之后看到如下,說明登錄成功了:
Login Succeeded
#匯入tomcat鏡像,tomcat.tar.gz在課件里
[root@xuegod63 ~]# docker load -i tomcat.tar.gz
#把tomcat鏡像打標簽
[root@xuegod63 ~]# docker tag tomcat:latest 192.168.1.64/test/tomcat:v1
執行上面命令就會把192.168.1.64/test/tomcat:v1上傳到harbor里的test專案下
[root@xuegod63 ~]# docker push 192.168.1.64/test/tomcat:v1
執行上面命令就會把192.168.1.64/test/tomcat:v1上傳到harbor里的test專案下
從harbor倉庫下載鏡像
在xuegod63機器上洗掉鏡像
[root@xuegod63 ~]# docker rmi -f 192.168.1.64/test/tomcat:v1
拉取鏡像
[root@xuegod63 ~]#docker pull 192.168.1.64/test/tomcat:v1
擴展:如果想要走安全的https訪問harbor,可以用如下方法
#登錄到xuegod63機器,創建證書存放目錄
[root@xuegod63]# mkdir -p /etc/docker/certs.d/xuegod64
#xuegod64是harbor簽發證書的時候指定的主機名
#登錄harbor服務器,把ca證書拷貝到使用docker的機器上
[root@xuegod64 ~]# cd /data/ssl
[root@xuegod64 ~]# scp ca.pem xuegod63:/etc/docker/certs.d/xuegod64/
#登錄到xuegod63機器
[root@xuegod63]# mv /etc/docker/certs.d/xuegod64
[root@xuegod64 ~]# mv ca.pem ca.crt
#修改docker配置
[root@xuegod63 ~]# vim /etc/docker/daemon.json
{
"registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com","https://rncxm540.mirror.aliyuncs.com","https://e9yneuy4.mirror.aliyuncs.com"],
}
#洗掉"insecure-registries": [“192.168.1.64”]
#重啟docker即可
[root@xuegod63]# systemctl restart docker
[root@xuegod63]# docker login https://xuegod64
Username:admin
Password: Harbor12345
使用阿里云私有倉庫存盤自己的docker鏡像
登錄阿里云開發者平臺
https://developer.aliyun.com/service
使用自己的賬號登錄,沒有的話注冊一個賬號
https://cr.console.aliyun.com/cn-hangzhou/instances
#點擊運行個人版
在此頁面中點擊“命名空間”-創建命名空間: testxuegod1
配置一個訪問私有倉庫的密碼,用戶名是你登錄網站的用戶名,
創建鏡像倉庫:
倉庫名稱:test
點管理,查看使用方法:
點開管理頁面,查看操作指南:
開始使用阿里云私有倉庫
登錄阿里云docker registry:
[root@xuegod63 ~]# docker login --username=lucky6a6a registry.cn-hangzhou.aliyuncs.com
登錄registry的用戶名是阿里云賬號全名,密碼是開通服務時設定的密碼,
登錄xuegod63將本地鏡像tomcat推送到阿里云registry
#把tomcat鏡像上傳到xuegod63上,手動解壓
docker load -i tomcat.tar.gz
為基礎鏡像打個標簽
[root@xuegod63 ~]# docker tag tomcat registry.cn-hangzhou.aliyuncs.com/testxuegod1/test:v1
#把鏡像上傳到阿里云主機
[root@xuegod63 ~]# docker push registry.cn-hangzhou.aliyuncs.com/testxuegod1/test:v1
在阿里云上查看:
下載一個鏡像:
登錄阿里云docker registry:
[root@xuegod64 ~]# docker login --username=lucky6a6a registry.cn-hangzhou.aliyuncs.com
登錄registry的用戶名是阿里云賬號全名,密碼是開通服務時設定的密碼,
看到如下說明登錄成功:
[root@xuegod64 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/testxuegod1/test:v1
[root@xuegod64 ~]# docker images
#配置阿里云鏡像加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
想要獲取原文當和學習視頻的 添加好友回復“docker”即可
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/294677.html
標籤:其他
下一篇:ARP欺騙
