KodBox 可道云 Docker Compose 部署图文教程

DOCKER COMPOSE · TUTORIAL 03

KodBox 可道云 Docker Compose 部署图文教程

适用服务器:(服务器IP)(柒云-香港 · CentOS 7 · 4核4G)· 前置:MySQL 8.0 已按教程一部署于同一网络

0. 环境速览

本服务器实际部署

以下信息来自服务器上正在运行的 KodBox 容器(docker inspect kodbox 实测)及其 1Panel 应用目录,教程步骤以这套实际配置为蓝本,密码位置已用占位符替代。

项目 实际值 说明
镜像 kodcloud/kodbox:v1.4505 KodBox 官方镜像(内置 PHP 8.2 + Nginx + Supervisor)
容器名 kodbox 同网络内通过 kodbox 访问
端口映射 0.0.0.0:8081 → 80/tcp 对外暴露,浏览器访问入口
站点目录 /opt/1panel/apps/kodbox/kodbox/site → /var/www/html bind 挂载,站点源码与数据持久化
网络 1panel-network(172.18.0.5) external 网络,与 MySQL 在同一网络
重启策略 always 崩溃自动拉起、开机自启
数据库 MySQL 8.0 · 库 kodbox(25 张表) 独立库,独立账号 kodbox@%
数据库连接 (服务器IP):3306(mysqli) 走宿主机 IP 连 MySQL 对外 3306
缓存 file(文件缓存) 不依赖 Redis,零额外组件

1. 部署架构

docker network: 1panel-network (172.18.0.0/16, external)

kodbox 容器 kodcloud/kodbox:v1.4505 · PHP 8.2 + Nginx 172.18.0.5 · restart: always 站点目录 bind 挂载到宿主机 Web: http://(服务器IP):8081

/opt/1panel/apps/kodbox/kodbox/site → /var/www/html(rw) bind 挂载(源码+数据持久化)

mysql 172.18.0.x 库: kodbox 账号: kodbox kodbox:3306 ──┐ (本服务器经宿主机 IP)

浏览器 / 客户端 Web 文件管理 http://IP:8081 0.0.0.0:8081

宿主机 (服务器IP) · CentOS 7 · Docker 26.1.4 · Compose 项目目录 /opt/1panel/apps/kodbox/kodbox

架构说明:KodBox 是 Web 网盘 / 私有云盘,前端由容器内置 Nginx 服务发布到 8081 端口;数据(站点源码、上传文件、系统数据)全部通过 bind 挂载持久化在宿主机 site 目录。数据库使用同机的 MySQL 8.0 独立库 kodbox,不使用 Redis(缓存走文件)。

2. 前置条件

PRE

  • Docker 与 Docker Compose 已安装(Docker ≥ 20.10,Compose v2)。本服务器实测 Docker 26.1.4 / Compose v2.27.1。
  • MySQL 8.0 已按《MySQL Docker Compose 部署图文教程》部署在 1panel-network 网络,根密码已验证;直接复用其 3306 对外端口。
  • 一个对外端口 8081(本服务器即 8081,需在云安全组/防火墙放行)。
  • 可选的域名与 Nginx/1Panel 反向代理(教程末尾介绍)。

3. 步骤一:创建数据库与账号

STEP 1

KodBox 需要一个独立数据库。进入 MySQL 容器,用 root 创建库 kodbox 和专用账号(本服务器已按此建好):

docker exec -it mysql mysql -uroot -p'你的Root密码'

# 在 MySQL 提示符下执行:
CREATE DATABASE IF NOT EXISTS kodbox DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS 'kodbox'@'%' IDENTIFIED BY '你的KodBox库密码';
GRANT ALL PRIVILEGES ON kodbox.* TO 'kodbox'@'%';
FLUSH PRIVILEGES;
EXIT;
弱口令风险:实际部署中请使用强密码,教程中 19**** 等已用占位符替代。账号与库创建后,下面 compose 只需拉起 KodBox,数据库由 MySQL 教程一保证可用。

验证:确认账号可登录、库已建成功(本服务器实测 25 张业务表):

docker exec mysql mysql -uroot -p'你的Root密码' -e   "SELECT user,host FROM mysql.user WHERE user='kodbox'; SHOW GRANTS FOR 'kodbox'@'%';"

4. 步骤二:编写 docker-compose.yml

STEP 2

本服务器 KodBox 由 1Panel 应用商店创建,Compose 项目目录位于 /opt/1panel/apps/kodbox/kodbox。下方给出一份标准化的、与现网配置一致的 compose 文件,可直接手动创建:

mkdir -p /opt/1panel/apps/kodbox/kodbox
vi /opt/1panel/apps/kodbox/kodbox/docker-compose.yml

粘贴以下内容(端口可按需调整):

networks:
  1panel-network:              # 复用已有网络
    external: true

services:
  kodbox:
    container_name: kodbox
    image: kodcloud/kodbox:v1.4505    # KodBox 官方镜像
    restart: always                   # 开机自启、崩溃自动拉起
    ports:
      - "8081:80"                     # 宿主机 8081 → 容器 80
    volumes:
      - ./site:/var/www/html          # 站点源码与数据持久化
    networks:
      - 1panel-network
    deploy:
      resources:
        limits:
          cpus: "0.5"                 # 可按需调整
          memory: 512M

关键参数说明

参数 作用
ports 宿主机 8081 映射容器 80,浏览器访问入口
volumes ./site 站点程序、上传文件、系统数据全部落盘,容器升级/重建数据不丢
restart: always 进程崩溃自动重启,服务器重启后自动拉起
1panel-network: external 复用已有 Docker 网络,便于与 MySQL 等其他容器互通
deploy.resources 限制 CPU/内存,防止占用过多(1Panel 面板会加此段)
若不用 1Panel、想纯 docker run 启动,等价命令为:docker run -d --name kodbox --network 1panel-network -p 8081:80 --restart always -v /opt/1panel/apps/kodbox/kodbox/site:/var/www/html kodcloud/kodbox:v1.4505。

5. 步骤三:启动容器

STEP 3

cd /opt/1panel/apps/kodbox/kodbox
docker compose up -d          # 后台启动(首次会拉取 kodbox 镜像)
docker compose ps             # 状态应为 Up

验证容器与端口:

docker ps | grep kodbox
docker port kodbox            # 显示 80/tcp -> 0.0.0.0:8081
curl -I http://127.0.0.1:8081  # 应返回 HTTP 200
若是全新部署且本机已存在同名容器,先清理再启动:docker stop kodbox && docker rm kodbox(site 目录保留,数据不丢)。

6. 步骤四:配置数据库与首次安装

STEP 4

浏览器访问 http://(服务器IP):8081,进入 KodBox 安装向导,填写数据库信息(与步骤一创建的一致):

安装项 推荐值 说明
数据库地址 (服务器IP) MySQL 对外 IP(本机用 127.0.0.1 也可,但容器内建议用宿主机 IP 或服务名宿主可达地址)
数据库端口 3306 MySQL 对外端口
数据库名 kodbox 步骤一创建的库
用户名 kodbox 步骤一创建的账号
密码 你的KodBox库密码 步骤一设置
管理员/密码 自定义强密码 KodBox 后台超级管理员

安装成功后,系统在 site/config/setting_user.php 写入数据库连接配置(本服务器实测):

$config['database'] = array (
  'DB_TYPE' => 'mysqli',
  'DB_HOST' => '(服务器IP)',   // MySQL 宿主机 IP
  'DB_PORT' => 3306,
  'DB_USER' => 'kodbox',
  'DB_PWD'  => '你的KodBox库密码',
  'DB_NAME' => 'kodbox',
);

再次刷新浏览器,用创建的管理员账号登录,即可开始使用 KodBox 网盘。

7. 步骤五:日常运维

STEP 5

查看日志与重启

docker compose logs -f kodbox    # 实时日志
docker compose restart kodbox    # 重启服务

备份(强烈建议)

同时备份站点目录与数据库:

# 1. 站点/上传文件(site 目录即全部站点数据)
tar czf /opt/docker/backup/kodbox-site-$(date +%F).tar.gz -C /opt/1panel/apps/kodbox/kodbox/site .

# 2. 数据库
docker exec mysql mysqldump -uroot -p'你的Root密码' kodbox   > /opt/docker/backup/kodbox-db-$(date +%F).sql

升级镜像

cd /opt/1panel/apps/kodbox/kodbox
docker compose pull kodbox       # 拉取新镜像
docker compose up -d kodbox      # 重建容器(site 卷自动保留)
升级前务必同时备份 site 目录与数据库;升级后如有异常可 docker compose up -d --force-recreate 重建,或回退镜像标签。

8. 常见问题

FAQ

Q1:访问 http://IP:8081 打不开?

按顺序排查:① 云安全组/防火墙是否放行 8081;② docker ps 容器是否 Up;③ docker port kodbox 是否 0.0.0.0:8081->80;④ curl -I http://127.0.0.1:8081 是否 200;⑤ 是否已改端口而未重建容器。

Q2:安装时“数据库连接失败”?

① 数据库地址端口是否正确;② 账号/密码/库名是否与 MySQL 实际一致;③ KodBox 与 MySQL 是否都能互通(本服务器均走宿主机 IP (服务器IP):3306,需确认 MySQL 对外 3306 已开放);④ MySQL 是否正常 docker ps。

Q3:上传大文件失败 / PHP 限制?

KodBox 镜像默认已调大上传限制;若仍失败,检查磁盘剩余空间 df -h,并确认 site/data/files 所在分区足够。也可在 site/config/setting_user.php 中按需覆盖 maxUploadSize 等参数。

Q4:如何为 KodBox 配域名和 HTTPS?

最简单:用 1Panel 创建一个反代网站,把域名指向 http://127.0.0.1:8081,并自动申请/续期 Let’s Encrypt 证书;或在宿主机 Nginx/Caddy 前做一层反向代理并挂证书。不建议直接让 8081 对外明文传输敏感数据。

Q5:数据库连接为什么用宿主机 IP 而不是 mysql:3306?

本服务器是后端 MySQL 源码中填写的地址,走宿主机对外 3306;只要安全组只对内网/白名单开放即可。更安全的方式是把 KodBox 与 MySQL 都放在同一 Docker 网络内,数据库地址填服务名 mysql,端口 3306,不对外暴露库端口。

全链路回顾:MySQL 教程 → docker compose up -d 起 MySQL;本教程 → KodBox 容器化部署并连 kodbox 库;浏览器访问 http://(服务器IP):8081 完成网盘初始化。至此一套「MySQL + KodBox 私有网盘」容器化服务部署完成。
KodBox(可道云)Docker Compose 部署图文教程 · 基于服务器 (服务器IP) 实测 · 镜像 kodcloud/kodbox:v1.4505
适用服务器:CentOS 7 · Docker 26.1.4 · Compose v2.27.1 · 发布日期 2026-09-03

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容