一、Harbor部署
1.验证python版本
root@docker2 \~\]#python --version
2.安装pip
\[root@docker2 \~\]# yum -y install python2-pip
#由于版本过低,需要对其进行一个升级
#更新pip
\[root@docker2 \~\]#pip install --upgrade pip
3.指定版本号
\[root@docker2 \~\]# pip install --upgrade pip==20.3 -i [https://mirrors.aliyun.com/pypi/simple](https://mirrors.aliyun.com/pypi/simple "https://mirrors.aliyun.com/pypi/simple")
#查看pip版本
\[root@docker2 \~\]# pip list
Package Version
pip 20.3
4.安装docker-compose
[root@docker2 ~]# pip install docker-compose --ignore-installed requests -i https://mirrors.aliyun.com/pypi/simple
#查看docker-compose版本
[root@docker2 ~]# pip list
Package Version
docker-compose 1.26.2
5.安装docker
#docker.sh脚本的具体内容如下:
#---------------------------------------------------------------------------------------
# 创建一个配置文件,确保在系统启动时加载 overlay 和 br_netfilter 内核模块
cat << EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
# 立即加载 overlay 和 br_netfilter 内核模块
modprobe overlay
modprobe br_netfilter
# 创建一个 sysctl 配置文件,配置 Kubernetes 网络设置
cat << EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1 # 允许对桥接接口的iptables过滤
net.bridge.bridge-nf-call-ip6tables = 1 # 允许对桥接接口的ip6tables过滤
net.ipv4.ip_forward = 1 # 启用 IPv4 转发,以支持 pod 网络
EOF
# 重新加载 sysctl 配置,应用新的网络设置
sysctl --system
# 安装 yum-utils、设备映射持久数据和 lvm2,这些是后续安装 Docker 所需的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里云 Docker 仓库,以便于通过 yum 安装 Docker
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 Docker 及相关组件,包括 Docker CLI、containerd、Buildx 和 Compose 插件
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
#---------------------------------------------------------------------------------------
#拖拽安装docker的脚本
[root@docker2 ~]# rz -E
rz waiting to receive.
#查看
[root@docker2 ~]# ls
anaconda-ks.cfg docker.sh
#让docker.sh脚本生效
[root@docker2 ~]# source docker.sh
#上传daemon.json文件
[root@docker2 harbor]# scp [email protected]:/etc/docker/daemon.json /etc/docker/
#编辑daemon.json文件
[root@docker2 harbor]# vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
],
"hosts":[
"tcp://0.0.0.0:2375",
"unix:///var/run/docker.sock"
],
"insecure-registries": [
"http://192.168.1.24"
]
}
#编辑docker.service文件
[root@docker2 harbor]# vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd
#启动docker
[root@docker2 harbor]# systemctl start docker
Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
#重新加载daemon
[root@docker2 harbor]# systemctl daemon-reload
#再次启动docker
[root@docker2 harbor]# systemctl start docker
6.安装harbor
#下载harbor包
[root@docker2 ~]# rz -E
rz waiting to receive.
#查看
[root@docker2 ~]# ls
anaconda-ks.cfg docker.sh harbor-offline-installer-v2.11.1.tgz
#查看docker版本
[root@docker2 ~]# docker --version
Docker version 26.1.4, build 5650f9b
#解压harbor
[root@docker2 ~]# tar -zxvf harbor-offline-installer-v2.11.1.tgz
#查看
[root@docker2 ~]# ls
anaconda-ks.cfg docker.sh harbor harbor-offline-installer-v2.11.1.tgz
#切入harbor目录
[root@docker2 ~]# cd harbor/
#查看
[root@docker2 harbor]# ls
common.sh harbor.v2.11.1.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
7.复制harbor.yml文件
\[root@docker2 harbor\]# cp harbor.yml.tmpl harbor.yml
8.编辑harbor.yml文件
\[root@docker2 harbor\]# vim harbor.yml

9.查看端口状态
\[root@docker2 harbor\]# netstat -lnput \| grep 80\[root@docker2 harbor\]# netstat -lnput \| grep 5000
10.执行
#执行prepare
\[root@docker2 harbor\]# ./prepare
#执行install.sh
\[root@docker2 harbor\]# ./install.sh
11.上传镜像
\[root@docker2 harbor\]# docker pull centos
12.打标签
\[root@docker2 harbor\]# docker tag centos:latest 192.168.1.24/library/ddcentos:v0
13.下载镜像
\[root@docker2 harbor\]# docker push 192.168.1.24/library/ddcentos:v0
14.登录docker镜像仓库
[root@docker2 harbor]# docker login http://192.168.1.24
Username: admin
Password:
Error response from daemon: Get "http://192.168.1.24/v2/": dial tcp 192.168.1.24:80: connect: connection refused
15.浏览器访问:

16.开启容器
#查看所有容器
[root@docker2 harbor]# docker ps --all
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
99c3f62458f4 goharbor/nginx-photon:v2.11.1 "nginx -g 'daemon of..." 32 minutes ago Up 3 seconds (health: starting) 0.0.0.0:80->8080/tcp, :::80->8080/tcp nginx
dd3ef1a8cdfc goharbor/harbor-jobservice:v2.11.1 "/harbor/entrypoint...." 32 minutes ago Exited (128) 3 minutes ago harbor-jobservice
8999a3b7136d goharbor/harbor-core:v2.11.1 "/harbor/entrypoint...." 32 minutes ago Exited (128) 2 minutes ago harbor-core
444ce3ab8f55 goharbor/harbor-portal:v2.11.1 "nginx -g 'daemon of..." 32 minutes ago Exited (128) 2 minutes ago harbor-portal
8a8cd273a779 goharbor/registry-photon:v2.11.1 "/home/harbor/entryp..." 32 minutes ago Exited (128) 2 minutes ago registry
dbf40ab53516 goharbor/redis-photon:v2.11.1 "redis-server /etc/r..." 32 minutes ago Up 2 minutes (healthy) redis
59f6ebcbaa18 goharbor/harbor-registryctl:v2.11.1 "/home/harbor/start...." 32 minutes ago Exited (128) 2 minutes ago registryctl
a7b8abe38923 goharbor/harbor-db:v2.11.1 "/docker-entrypoint...." 32 minutes ago Exited (128) 2 minutes ago harbor-db
9cc010ff2807 goharbor/harbor-log:v2.11.1 "/bin/sh -c /usr/loc..." 32 minutes ago Up 2 minutes (healthy) 127.0.0.1:1514->10514/tcp harbor-log
#开启关闭的容器
[root@docker2 harbor]# docker start harbor-jobservice harbor-core harbor-portal registry registryctl harbor-db
harbor-jobservice
harbor-core
harbor-portal
registry
registryctl
harbor-db
17.访问验证
#再次登录docker镜像仓库
[root@docker2 harbor]# docker login http://192.168.1.24
Username: admin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
#再次下载镜像
[root@docker2 harbor]# docker push 192.168.1.24/library/ddcentos:v0
The push refers to repository [192.168.1.24/library/ddcentos]
74ddd0ec08fa: Pushed
v0: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529
#浏览器访问验证:
能够看到我们所创建的镜像---ddcentos

18.共享镜像
切到docker机器:
#启动docker
\[root@docker \~\]# systemctl start docker
#编辑daemon.json文件
\[root@docker \~\]# vim /etc/docker/daemon.json

#重新启动docker
\[root@docker \~\]# systemctl restart docker
#到访问页面复制拉取命令

#使用复制的连接,添加同时共享的镜像
[root@docker ~]# docker pull 192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc: Pulling from library/ddcentos
Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Downloaded newer image for 192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
192.168.1.24/library/ddcentos@sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
#查看镜像
#可以看到被共享的镜像
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos httpd0 db3cae3b5002 2 days ago 280MB
192.168.1.32:5000/centos_nginx v0 1c2a0901c77a 3 days ago 368MB
centos nginx 1c2a0901c77a 3 days ago 368MB
centos httpd e9a1ee725b43 6 days ago 311MB
centos yum 82ca12d9b058 6 days ago 261MB
registry latest cfb4d9904335 11 months ago 25.4MB
centos latest 5d0da3dc9764 2 years ago 231MB
192.168.1.24/library/ddcentos