容器之王--部署Docker私有仓库harbor母盘步骤演练
4.5 部署–企业级harbor私有仓库母盘
以下上面都有,以下只是做了整合,方便查阅
[root@docker-harbor ~]# systemctl disable --now firewalld
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
[root@docker-harbor ~]# getenforce
Disabled[root@docker-harbor ~]# cd /etc/yum.repos.d
[root@docker-harbor yum.repos.d]# vim docker.repo
[root@docker-harbor yum.repos.d]# cat docker.repo
[docker]
name = docker-ce
baseurl = https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable
gpgcheck = 0[root@docker-harbor yum.repos.d]# yum makecache[root@docker-harbor yum.repos.d]# rpm -qa | grep podman
podman-4.6.1-5.el9.x86_64
cockpit-podman-76-1.el9_3.noarch[root@docker-harbor yum.repos.d]# rm -rf podman-4.6.1-5.el9.x86_64
[root@docker-harbor yum.repos.d]# rm -rf cockpit-podman-76-1.el9_3.noarch# 上传所需文件
[root@docker-harbor ~]# cd /mnt/
[root@docker-harbor mnt]# ls
docker.tar.gz packages.zip[root@docker-harbor mnt]# tar zxf docker.tar.gz
[root@docker-harbor mnt]# unzip packages.zip[root@docker-harbor mnt]# ls
docker docker.tar.gz packages packages.zip
[root@docker-harbor mnt]# cd docker/[root@docker-harbor docker]# yum install *.rpm# 在第15行命令,在后面加上参数 --iptables=true
[root@docker-harbor docker]# vim /usr/lib/systemd/system/docker.service
15 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --iptables=true[root@docker-harbor docker]# systemctl daemon-reload
[root@docker-harbor docker]# systemctl restart docker
[root@docker-harbor docker]# echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
[root@docker-harbor docker]# sysctl -p
net.ipv4.ip_forward = 1[root@docker-harbor docker]# systemctl enable --now docker[root@docker-harbor docker]# docker info
# 以下除了rhel9不需要做,其他版本的系统建议去做
# 激活内核网络选项
]# echo br_netfilter > /etc/modules-load.d/docker_mod.conf
]# modprobe br_netfilter
]# vim /etc/sysctl.d/docker.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1]# sysctl --system
]# systemctl restart docker
# 创建了证书与密钥
[root@docker-harbor ~]# mkdir -p /data/certs
[root@docker-harbor ~]# openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout /data/certs/dhj.org.key \
-addext "subjectAltName = DNS:reg.dhj.org" \
-x509 -days 365 -out /data/certs/dhj.org.crtCommon Name (eg, your name or your server's hostname) []:reg.dhj.org# 创建证书目录并部署信任证书(使Docker客户端信任私有仓库的HTTPS证书)
[root@docker-harbor ~]# mkdir /etc/docker/certs.d/reg.dhj.org/ -p
[root@docker-harbor ~]# cp /data/certs/dhj.org.crt /etc/docker/certs.d/reg.dhj.org/ca.crt
[root@docker-harbor ~]# systemctl restart docker
[root@docker-harbor ~]# cd /mnt/packages/
[root@docker-harbor packages]# cp -p harbor-offline-installer-v2.5.4.tgz /root[root@docker-harbor packages]# cd
[root@docker-harbor ~]# tar zxf harbor-offline-installer-v2.5.4.tgz[root@docker-harbor ~]# cd harbor
[root@docker-harbor harbor]# cp harbor.yml.tmpl harbor.yml# 需要修改内容如下(如果一致,不变即可):
[root@docker-harbor harbor]# vim harbor.yml5 hostname: reg.dhj.org17 certificate: /data/certs/dhj.org.crt # 看自己的存放位置18 private_key: /data/certs/dhj.org.key # 看自己的存放位置34 harbor_admin_password: admin # 初始密码47 data_volume: /data # 此处挂载的目录(需要跟上面证书与密钥在一个目录下)[root@docker-harbor harbor]# ./install.sh --with-chartmuseum
[root@docker-harbor harbor]# docker compose stop
[root@docker-harbor harbor]# docker compose up -d
# 去浏览器中去测试172.25.254.100




[root@docker-harbor ~]# cd /etc/docker/
[root@docker-harbor docker]# vim daemon.json
[root@docker-harbor docker]# cat daemon.json
{"registry-mirrors": ["https://reg.dhj.org"]
}[root@docker-harbor docker]# systemctl restart docker[root@docker-harbor docker]# docker logout reg.dhj.org
Removing login credentials for reg.dhj.org[root@docker-harbor harbor]# docker compose up -d[root@docker-harbor harbor]# docker login reg.dhj.org
Username: admin
Password:admin
# 测试:上传一个镜像
[root@docker-harbor harbor]# cd
[root@docker-harbor ~]# cd /mnt/packages/[root@docker-harbor packages]# docker load -i busybox-latest.tar.gz[root@docker-harbor packages]# docker tag busybox:latest reg.dhj.org/ceshi/busybox:latest
[root@docker-harbor packages]# docker push reg.dhj.org/ceshi/busybox:latest# 查看是否上传成功
[root@docker-harbor packages]# curl -k https://reg.dhj.org/v2/_catalog -u admin:admin
{"repositories":["ceshi/busybox"]}# 在浏览器中可以进行查看,如下图所示
# 成功即为部署完成!