![License badge][license-img] ![Based OS][os-based-ubuntu] ![Based OS][os-based-alpine] ![Badge amd64][arch-amd64-img] ![Badge arm64][arch-arm64/v8-img]
本镜像包提供 [Bareos][bareos-href] 的相关镜像,包括以下模块:
| 模块 | 构建状态 | Ubuntu镜像大小 | Alpine镜像大小 | 拉取地址 |
|---|---|---|---|---|
| Director | [![Actions Status][build-director-img]][build-director-href] | ![Size badge][size-latest-director-png] | ![Size badge][size-alpine-director-png] | [![Docker badge][docker-img-dir]][docker-url-dir] |
| 存储守护进程 | [![Actions Status][build-storage-img]][build-storage-href] | ![Size badge][size-latest-storage-png] | ![Size badge][size-alpine-storage-png] | [![Docker badge][docker-img-sd]][docker-url-sd] |
| 客户端/文件守护进程 | [![Actions Status][build-client-img]][build-client-href] | ![Size badge][size-latest-client-png] | ![Size badge][size-alpine-client-png] | [![Docker badge][docker-img-fd]][docker-url-fd] |
| webUI | [![Actions Status][build-webui-img]][build-webui-href] | ![Size badge][size-latest-webui-png] | ![Size badge][size-alpine-webui-png] | [![Docker badge][docker-img-ui]][docker-url-ui] |
| API | [![Actions Status][build-api-img]][build-api-href] | ![Size badge][size-latest-api-png] | [![Docker badge][docker-img-api]][docker-url-api] |
镜像基于 Alpine 构建,具体标签信息见下文。
bareos-director (dir)
21-alpine-pgsql, 21-alpine, alpine, latest20-alpine-pgsql, 20-alpinebareos-client (fd) - bareos-storage (sd) - bareos-webui
21-alpine, alpine, latest20-alpine, latestbareos-api
21-alpine, 21, alpine, latestBareos Director 需要:
Bareos Webui 需要:
Bareos Client (fd) 和 Storage (sd) 无依赖。
各组件需在独立容器中运行,并通过docker-compose链接,详见下文示例。
声明环境变量,或将 .env.dist 复制为 .env 并调整值。
所有密码应在 .env 文件中定义,生产环境建议不要使用 .env.dist 中的默认密码。
最后,确保更新docker-compose文件中的变量,如 ADMIN_MAIL 或 DB_USER。
bashdocker-compose -f /path/to/your/docker-compose.yml up -d
Alpine和Ubuntu基础的docker-compose文件如下:
| 文件 | compose版本 | docker版本 | 最新构建 |
|---|---|---|---|
| [alpine-v1/mysql][compose-alpinev1-href] | v3+ | v1.13.0+ | ![run-compose][run-compose-png] |
| [alpine-v2/mysql][compose-alpinev2-href] | v3.7+ | v18.06.0+ | ![run-compose][run-compose-png] |
| [ubuntu/mysql][compose-ubuntu-mysql-href] | v3+ | v1.13.0+ | ![run-compose][run-compose-png] |
| [ubuntu/pgsql][compose-ubuntu-pgsql-href] | v3+ | v1.13.0+ | ![run-compose][run-compose-png] |
:file_folder: 这些docker-compose文件配置为将数据存储在 /data/(bareos|mysql|pgsql)。
容器启动后,可通过WebUI、CLI或API访问Bareos。
在浏览器中打开 [***],登录:
(用户:admin / 密码:<BAREOS_WEBUI_PASSWORD>)
bashdocker exec -it bareos-dir bconsole
(需要Bareos 20+ 及Bareos命名控制台)
在浏览器中打开 [***],点击"Authorize"登录。
或使用curl示例:
获取令牌(返回包含令牌的JSON对象):
bashcurl -X 'POST' \ '[***] \ -H 'accept: application/json' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=&username=admin&password=ThisIsMySecretUIp4ssw0rd&scope=&client_id=&client_secret='
使用Bareos-webui管理员用户凭证,该用户在Bareos-director中配置为命名控制台。
返回结果:
json{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY0NzIxMDM3NX0.alKiLsgMrovKVX6fdcUqkhG_9lsJNiOBQ6X7ixyziGw", "token_type": "bearer" }
使用令牌读取所有客户端配置(类似bconsole):
bashcurl -X 'GET' \ '[***] \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTY0NzIxMDM3NX0.alKiLsgMrovKVX6fdcUqkhG_9lsJNiOBQ6X7ixyziGw'
将返回包含所有客户端配置的JSON文件。
在浏览器中打开 [***] 查看可用指标。
更多关于 [Bareos exporter][bareos-exporter-href] 的信息,感谢@vierbergenlars。
指标应由 [Prometheus][prometheus-href] 服务器抓取。
更多Bareos配置和使用信息,请参考 [***文档][bareos-doc]。
由于Bareos版本 >= 21.0.0 不再提供MySQL数据库后端,需使用Bareos 20将现有MySQL目录迁移到PostgreSQL。为此,先升级到Bareos 20,然后使用 [此docker-compose文件][compose-db-migration-href] 备份(可选)整个Bareos MySQL目录并复制到新的PostgreSQL目录数据库。
若PostgreSQL数据库为空或不存在,将自动创建。
:warning: 不要忘记包含所需密码的 .env 文件!
目前,最新的Ubuntu基础镜像兼容PostgreSQL 12及以下,Alpine镜像兼容PostgreSQL 14。这取决于转储Bareos数据库所需的 pg_dump 版本。
Ubuntu镜像:
Alpine镜像:
主要思路是使用 [postgresql-upgrade][psql-upgrade-href] Docker镜像。它将创建新的PostgreSQL实例,然后使用 pg_upgrade 工具将所有数据库从旧实例迁移到新实例。
操作步骤:找到PostgreSQL数据文件夹(根据docker-compose文件,可能为/data/pgsql/data),确定初始化实例的用户(postgres?pgsql?root?)。
示例:数据源为 /data/pgsql/data,管理员用户为postgres。
运行:
bashdocker run -t -i \ -e PG_NEW=12 \ -e PGUSER=postgres \ -v /data/pgsql/data:/pg_old/data \ -v /data/pgsql-new/data:/pg_new/data \ barcus/postgresql-upgrade
迁移成功后,使用新文件夹 /data/pgsql-new/data 和docker-compose文件中相关的PostgreSQL版本。
使用以下模板构建自定义docker-compose文件:
ymlversion: '3' services: bareos-dir: image: barcus/bareos-director:latest # 基于Ubuntu的最新director-pgsql volumes: - <BAREOS_CONF_PATH>:/etc/bareos - <BAREOS_DATA_PATH>:/var/lib/bareos # MyCatalog备份所需 environment: - DB_INIT=false - DB_UPDATE=false - DB_HOST=bareos-db - DB_PORT=3306 - DB_NAME=bareos - DB_USER=bareos - DB_PASSWORD=${DB_PASSWORD} # 在.env文件中定义 - DB_ADMIN_USER=${DB_ADMIN_USER} # 在.env文件中定义 - DB_ADMIN_PASSWORD=${DB_ADMIN_PASSWORD} # 在.env文件中定义 - BAREOS_FD_HOST=bareos-fd - BAREOS_FD_PASSWORD=${BAREOS_FD_PASSWORD} # 在.env文件中定义 - BAREOS_SD_HOST=bareos-sd - BAREOS_SD_PASSWORD=${BAREOS_SD_PASSWORD} # 在.env文件中定义 - BAREOS_WEBUI_PASSWORD=${BAREOS_WEBUI_PASSWORD} # 在.env文件中定义 - SMTP_HOST=smtpd - SENDER_MAIL=*** # 可选 - ADMIN_MAIL=*** # 请修改! # 可选:通过Slack或***接收备份通知 - WEBHOOK_NOTIFICATION=true # true或false,设为true将禁用邮件通知 - WEBHOOK_TYPE=slack # 选择slack或*** - WEBHOOK_URL= # 设置slack或*** URL - WEBHOOK_CHAT_ID= # 仅***需要设置<chat_id> depends_on: - bareos-db bareos-sd: image: barcus/bareos-storage:latest ports: - 9103:9103 volumes: - <BAREOS_CONF_PATH>:/etc/bareos - <BAREOS_BKP_VOLUME_PATH>:/var/lib/bareos/storage environment: - BAREOS_SD_PASSWORD=${BAREOS_SD_PASSWORD} # 在.env文件中定义 bareos-fd: image: barcus/bareos-client:latest volumes: - <BAREOS_CONF_PATH>:/etc/bareos - <BAREOS_DATA_PATH>:/var/lib/bareos-director # MyCatalog备份所需 environment: - BAREOS_FD_PASSWORD=${BAREOS_FD_PASSWORD} # 在.env文件中定义 - FORCE_ROOT=false bareos-webui: image: barcus/bareos-webui:latest ports: - 8080:80 environment: - BAREOS_DIR_HOST=bareos-dir - SERVER_STATS=yes # 可选,启用apache服务器统计 volumes: - <BAREOS_CONF_PATH>:/etc/bareos-webui #bareos-db: # image: mysql:5.6 # volumes: # - <DB_DATA_PATH>:/var/lib/mysql # environment: # - MYSQL_ROOT_PASSWORD=${DB_ADMIN_PASSWORD} # 在.env文件中定义 bareos-db: image: postgres:12 volumes: - <DB_DATA_PATH>:/var/lib/postgresql/data environment: - POSTGRES_USER=${DB_ADMIN_USER} # 在.env文件中定义 - POSTGRES_PASSWORD=${DB_ADMIN_PASSWORD} # 在.env文件中定义 - POSTGRES_INITDB_ARGS=--encoding=SQL_ASCII bareos-api: image: barcus/bareos-api:21 ports: - 8000:8000 environment: - BAREOS_DIR_HOST=bareos-dir smtpd: image: namshi/smtp
Bareos Director (bareos-dir)
<BAREOS_CONF_PATH>:主机端Director配置文件夹路径(可选/推荐)<BAREOS_DATA_PATH>:主机端Director数据文件夹路径(推荐)Bareos Storage Daemon (bareos-sd)
<BAREOS_CONF_PATH>:主机端Storage配置文件夹路径(可选/推荐)<BAREOS_BKP_VOLUME_PATH>:主机端数据文件夹路径(可选)Bareos Client/File Daemon (bareos-fd)
<BAREOS_CONF_PATH>:主机端Client配置文件夹路径(可选/推荐)<BAREOS_DATA_PATH>:访问Director数据文件夹的路径(推荐)数据库MySQL或PostgreSQL (bareos-db)
作为目录后端必需,使用***MySQL/PostgreSQL镜像:
<DB_DATA_PATH>:主机端MySQL/PostgreSQL数据路径Bareos webUI (bareos-webui)
<BAREOS_CONF_PATH>:主机端WebUI配置文件夹路径(可选)admin:warning: 注意 *_HOST 变量需设置为容器名称。
构建自定义Bareos镜像:
bashgit clone [***] cd bareos docker build -t director-pqsl:20-alpine director-pgsql/20-alpine docker build -t storage:20-alpine storage/20-alpine docker build -t client:20-alpine client/20-alpine docker build -t webui:20-alpine webui/20-alpine
构建自定义Xenial基础系统镜像:
bashgit clone [***] cd docker-ubuntu ./build.sh -d xenial
感谢@rockyluke :)
更多信息请访问GitHub仓库:
我的Docker
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429