CentOS 7.6 Minimal 192.168.73.135
Docker 20.10.12 Docker安装教程
Docker Compose v2.2.2 Docker Compose安装教程
Openssl (CentOS系统自带)
下载地址
https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz
解压
# 解压
tar -xvf harbor-offline-installer-v2.4.1.tgz
# 移动到安装目录
mv harbor /usr/local/harbor
在CentOS
服务器进行如下操作,我这里使用域名harbor.rkyao.com
访问,生成证书命令里的域名替换成这个
在生产环境中,您应该从 CA 获得证书。在测试或开发环境中,您可以生成自己的 CA。要生成 CA 证书,请运行以下命令。
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rkyao.com" \
-key ca.key \
-out ca.crt
证书通常包含一个.crt
文件和一个.key
文件
openssl genrsa -out harbor.rkyao.com.key 4096
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rkyao.com" \
-key harbor.rkyao.com.key \
-out harbor.rkyao.com.csr
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.rkyao.com
DNS.2=harbor.rkyao.com
DNS.3=harbor.rkyao.com
EOF
v3.ext
文件为您的Harbor
主机生成证书openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.rkyao.com.csr \
-out harbor.rkyao.com.crt
生成后ca.crt
、harbor.rkyao.com.crt
和harbor.rkyao.com.key
文件,必须将它们提供给Harbor
和Docker
,并重新配置Harbor
以使用它们。
Harbor
主机上的/data/cert/
文件夹中mkdir -p /data/cert/
cp harbor.rkyao.com.crt /data/cert/
cp harbor.rkyao.com.key /data/cert/
harbor.rkyao.com.crt
为harbor.rkyao.com.cert
,供Docker
使用,Docker
守护进程将.crt
文件解释为CA
证书,将.cert
文件解释为客户端证书。openssl x509 -inform PEM -in harbor.rkyao.com.crt -out harbor.rkyao.com.cert
CA
文件复制到Harbor
主机上的Docker
证书文件夹中,您必须先创建适当的文件夹。mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
cp harbor.rkyao.com.cert /etc/docker/certs.d/harbor.rkyao.com/
cp harbor.rkyao.com.key /etc/docker/certs.d/harbor.rkyao.com/
cp ca.crt /etc/docker/certs.d/harbor.rkyao.com/
证书文件夹的目录结构
/etc/docker/certs.d/
└── harbor.rkyao.com
├── ca.crt
├── harbor.rkyao.com.cert
└── harbor.rkyao.com.key
Docker
systemctl restart docker
# 切换到安装目录
cd /usr/local/harbor
# harbor.yml为配置文件,默认不存在,需从harbor.yml.tmpl复制出一个出来
cp harbor.yml.tmpl harbor.yml
# 打开文件
vi harbor.yml
# 修改如下配置
hostname: harbor.rkyao.com
certificate: /data/cert/harbor.rkyao.com.crt
private_key: /data/cert/harbor.rkyao.com.key
external_url: https://harbor.rkyao.com
# 切换到安装目录
cd /usr/local/harbor
# 执行安装脚本
sh install.sh
本地win系统配置hosts
192.168.73.135 harbor.rkyao.com
浏览器访问 https://harbor.rkyao.com 即可打开Web管理界面,用户名密码为 admin/Harbor12345
在另一台Linux
服务器上面进行测试
配置hosts
vi /etc/hosts
# 添加如下内容
192.168.73.135 harbor.rkyao.com
在Docker
的配置文件的目录添加服务器证书
# 创建目录
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
# 该目录下添加三个证书文件ca.crt、harbor.rkyao.com.cert、harbor.rkyao.com.key,从安装Harbor的机器上 /etc/docker/certs.d/harbor.rkyao.com 目录下copy过来,参见上面 三、3、3)节
通过Web
界面创建一个项目rkyao
,先创建了才能上传镜像
上传镜像
# 登录 用户名密码 admin/Harbor12345
docker login --username=admin harbor.rkyao.com
# 给本地镜像打tag,命令格式如下
docker tag [ImageId] [harbor域名]/[项目名]/[REPOSITORY]:[TAG]
eg: docker tag 57c4d3c46810 harbor.rkyao.com/rkyao/eureka-server:1.0.0
# 上传镜像
docker push [harbor域名]/[项目名]/[REPOSITORY]:[TAG]
eg: docker push harbor.rkyao.com/rkyao/eureka-server:1.0.0
拉取命令格式如下
docker pull [harbor域名]/[项目名]/[REPOSITORY]:[TAG]
eg: docker pull harbor.rkyao.com/rkyao/eureka-server:1.0.0
查看本地镜像,拉取成功
https://goharbor.io/docs/2.5.0/install-config/