免费个人运维知识库,欢迎您的订阅:literator_ray.flowus.cn

一、脚本功能描述

  1. Docker 安装

    • 安装指定版本的 Docker CE (19.03.5)

    • 配置阿里云镜像加速器

    • 设置 Docker 服务开机自启

  2. Docker Compose 安装

    • 安装指定版本的 Docker Compose (1.25.3)

    • 下载二进制文件并设置可执行权限

  3. Harbor 安装

    • 安装指定版本的 Harbor (1.10.10)

    • 自动生成自签名证书

    • 配置文件自定义(主机名、管理员密码)

    • 执行 Harbor 安装脚本

  4. Harbor 服务管理

    • 创建 systemd 服务文件

    • 配置开机自启

    • 集成 Docker Compose 管理

  5. 安全特性​:

    • 自动生成自签名证书(有效10年)

    • 使用 HTTPS 加密通信

    • 自定义管理员密码

    • 避免重复安装(检查 Docker 是否已存在)

  6. 服务管理

    • 创建 systemd 服务文件 /lib/systemd/system/harbor.service

    • 定义服务依赖关系(在 Docker 启动后运行)

    • 设置重启策略(失败时自动重启)

    • 配置开机自启

  7. 安装流程

在这里插入图片描述

可以根据自己的实际需求修改脚本

二、脚本内容

脚本共102行,动动你的小手滚动查看

#!/bin/bash

COLOR="echo -e \E[1;31m"
END="\E[m"
DOCKER_VERSION="5:19.03.5~3-0~ubuntu-bionic"
HARBOR_VERSION=1.10.10
HARBOR_HOSTNAME=harbor.lhl.net
HARBOR_ADMIN_PASSWORD=123456
HARBOR_CRT='\/etc\/harbor\/certs\/harbor-ca.crt'
HARBOR_KEY='\/etc\/harbor\/certs\/harbor-ca.key'

install_docker() {
    ${COLOR}"--------开始安装docker--------"${END}
    sleep 1

    apt update
    apt -y install apt-transport-https ca-certificates curl software-properties-common
    curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#    add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs)stable"
    apt update
    ${COLOR}"Docker有以下版本"${END}
    apt-cache madison docker-ce
    ${COLOR}"5秒后即将安装: docker-"${DOCKER_VERSION}"版本......"${END}
    ${COLOR}"如果想安装其他Docker版本,请按Ctrl+C键退出,修改版本后在执行"${END}
    sleep 5

    apt -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION}

    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": ["https://si7y70hh.mirror.aliyuncs.com"]
}
EOF

    systemctl daemon-reload
    systemctl enable --now docker
    docker version && ${COLOR}"--------docker安装成功--------"${END} || ${COLOR}"--------docker安装失败--------"${END}
}

install_docker_compose() {
    ${COLOR}"--------开始安装docker_compose--------"${END}
    sleep 1

    curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose
    chmod +x /usr/bin/docker-compose

    docker-compose --version && ${COLOR}"--------docker compose安装成功--------"${END} || ${COLOR}"--------docker compose安装失败--------"${END}    
}

install_harbor() {
    ${COLOR}"--------开始安装harbor--------"${END}
    sleep 1

#    wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v${HARBOR_VERSION}.tgz
    wget https://storage.googleapis.com/harbor-releases/release-1.10.0/harbor-offline-installer-v${HARBOR_VERSION}.tgz
#    wget https://github.com/goharbor/harbor/releases/download/v${HARBOR_VERSION}/harbor-offline-installer-v${HARBOR_VERSION}.tgz

    tar xf harbor-offline-installer-v${HARBOR_VERSION}.tgz -C /etc
    sed -i.bak -e 's/^hostname: .*/hostname: '''$HARBOR_HOSTNAME'''/' -e 's/^harbor_admin_password: .*/harbor_admin_password: '''$HARBOR_ADMIN_PASSWORD'''/' -e 's/certificate: .*/certificate: '''$HARBOR_CRT'''/' -e 's/private_key: .*/private_key: '''$HARBOR_KEY'''/' /etc/harbor/harbor.yml
    
    # https config
    mkdir /etc/harbor/certs
    openssl genrsa -out /etc/harbor/certs/harbor-ca.key
    touch /root/.rnd
    openssl req -x509 -new -nodes -key /etc/harbor/certs/harbor-ca.key -subj "/CN=harbor.lhl.net" -days 3650 -out  /etc/harbor/certs/harbor-ca.crt
    
    apt -y install python3
    apt -y install python


    /etc/harbor/install.sh &&  ${COLOR}"--------harbor安装成功--------"${END} || ${COLOR}"--------harbor安装失败--------"${END}
}

harbor_service() {
    cat > /lib/systemd/system/harbor.service <<EOF
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor

[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f /etc/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f /etc/harbor/docker-compose.yml down

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable harbor &> /dev/null || ${COLOR}"--------Harbor已配置为开机自动启动--------"${END}
}

dpkg -s docker-ce &> /dev/null && ${COLOR}"Docker已安装,退出!"${END} || install_docker
docker-compose --version &> /dev/null && ${COLOR}"Docker compose已安装,退出!"${END} || install_docker_compose
install_harbor
harbor_service

三、注意事项

  1. 证书安全

    • 使用自签名证书(浏览器会有安全警告)

    • 生产环境应替换为正式证书

  2. 版本兼容性

    • 专为 Ubuntu Bionic (18.04) 设计

    • Docker 版本固定为 19.03.5

    • Harbor 版本固定为 1.10.10

  3. 网络要求

    • 需要访问阿里云镜像源

    • 需要访问 Google 存储(下载 Harbor)

    • 需要访问 GitHub(下载 Docker Compose)


欢迎您提出问题,并指正代码中的不足

请不要以此视为定论,这只是我的个人经验

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐