部署docker私有仓库Harbor

一、环境说明

操作系统:centos 7.5

软件版本:harbor 1.8.2

二、软件安装

1.安装前准备

# systemctl disable firewalld.service
# systemctl stop firewalld.service
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# setenforce 0
# hostnamectl --static set-hostname  docker-Harbor

安装docker-ce,再次不熬述

2.下载并解压harbor

# wget https://github.com/goharbor/harbor/releases/download/v1.8.2/harbor-offline-installer-v1.8.2.tgz
# mkdir /opt/software
# tar -xvf harbor-offline-installer-v1.8.2.tgz -C /opt/software

3.安装docker compose

方法一

# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose
# docker-compose --version
docker-compose version 1.24.1, build f46880fe

方法二

# yum -y install epel-release python-pip
# pip install docker-compose
# docker-compose --version
docker-compose version 1.22.0, build f46880fe

4.生成ssl证书文件

# mkdir {harbor安装路径}/cert && cd {harbor安装路径}/cert

# openssl genrsa -out ca.key 4096
# openssl req -x509 -new -nodes -sha512 -days 36500 
  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain" 
  -key ca.key 
  -out ca.crt

# openssl genrsa -out yourdomain.key 4096
# openssl req -sha512 -new 
  -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=yourdomain" 
  -key yourdomain.key 
  -out yourdomain.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=yourdomain
DNS.3=hostname
EOF

# openssl x509 -req -sha512 -days 36500 
  -extfile v3.ext 
  -CA ca.crt -CAkey ca.key -CAcreateserial 
  -in yourdomain.csr 
  -out yourdomain.crt

# openssl x509 -inform PEM -in yourdomain.crt -out yourdomain.cert

5.修改配置文件

# vi /opt/software/harbor/harbor.yml
hostname: {harbor自定义域名}

http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: {harbor http端口}
# https related config
https:
  # https port for harbor, default is 443
  port: {harbor https端口}
  # The path of cert and key files for nginx  
  certificate: {harbor安装路径}/cert/yourdomain.crt}
  private_key: {harbor安装路径}/cert/yourdomain.key}

harbor_admin_password: {harbor登录密码}

database:
  # The password for the root user of Harbor DB. Change this before any production use.
  password: {harbor数据库登录密码}

data_volume: {harbor数据存储位置}

6.安装harbor

# cd /opt/software/harbor
# ./prepare
# ./install.sh

[Step 0]: checking installation environment ...

Note: docker version: 18.03.1

Note: docker-compose version: 1.24.1

[Step 1]: loading Harbor images ...

查看生成的images和开发的端口

[root@harbor harbor]# docker images
REPOSITORY                                        TAG                        IMAGE ID            CREATED             SIZE
goharbor/chartmuseum-photon                       v0.9.0-v1.8.2              e72f3e685a37        5 weeks ago         130MB
goharbor/harbor-migrator                          v1.8.2                     c11a64ae3a1e        5 weeks ago         361MB
goharbor/redis-photon                             v1.8.2                     18036ee471bc        5 weeks ago         107MB
goharbor/clair-photon                             v2.0.8-v1.8.2              68de68a40e66        5 weeks ago         164MB
goharbor/notary-server-photon                     v0.6.1-v1.8.2              90cf28ef3a84        5 weeks ago         135MB
goharbor/notary-signer-photon                     v0.6.1-v1.8.2              e9b49ea8ed32        5 weeks ago         132MB
goharbor/harbor-registryctl                       v1.8.2                     ad798fd6e618        5 weeks ago         96.5MB
goharbor/registry-photon                          v2.7.1-patch-2819-v1.8.2   081bfb3dc181        5 weeks ago         81.6MB
goharbor/nginx-photon                             v1.8.2                     1592a48daeac        5 weeks ago         36.2MB
goharbor/harbor-log                               v1.8.2                     42ad5ef672dd        5 weeks ago         81.8MB
goharbor/harbor-jobservice                        v1.8.2                     623ed0095966        5 weeks ago         119MB
goharbor/harbor-core                              v1.8.2                     03d6daab10c7        5 weeks ago         135MB
goharbor/harbor-portal                            v1.8.2                     41e264a7980b        5 weeks ago         43.2MB
goharbor/harbor-db                                v1.8.2                     927ecd68ee1f        5 weeks ago         144MB
goharbor/prepare                                  v1.8.2                     b0d62cc7683d        5 weeks ago         145MB
# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:1514          0.0.0.0:*               LISTEN      1601/docker-proxy         
tcp6       0      0 :::443                  :::*                    LISTEN      1733/docker-proxy   
tcp6       0      0 :::80                   :::*                    LISTEN      1745/docker-proxy 

7.访问登录harbor(https://{harbor主机ip}),默认用户名/密码:admin/Harbor12345

8.修改需要与harbor连接的各docker节点配置文件

# vi /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://wghlmi3i.mirror.aliyuncs.com"],
  "insecure-registries":["{harbor主机IP:port}"]
}

# systemctl restart docker

9.harbor镜像操作

镜像打标签

docker tag SOURCE_IMAGE[:TAG] {harbor主机域名:port}/library/IMAGE[:TAG]

推送镜像

# docker login {harbor主机域名:port} -u {harbor登录用户名} -p {harbor密码}  //登入harbor在docekr client各主机执行
Login Succeeded
# docker push {harbor主机域名:port}/library/IMAGE[:TAG]

# docker logout    //登出harbor

拉取镜像

# docker pull {harbor主机域名:port}/library/IMAGE[:TAG]
一入运维深似海,从此不见彼岸花
原文地址:https://www.cnblogs.com/cn-jasonho/p/13285596.html