宝塔面板博客官方技术博客
宝塔面板

宝塔 Docker 部署自有 PHP / Java 项目:上传文件、建容器、测试访问

想把自己写的 PHP 或 Java 项目部署上线,又不愿手动装 PHP、Java 运行环境,可以用宝塔面板的 Docker 管理器:先在「网站 → 运行环境」里按语言创建容器,再把项目文件上传到指定目录,需要数据库时连一个 MySQL 容器,配好连接后创建网站就能访问。和应用商店的一键模板不同,这条路径走的是「自己传项目文件」的方式,适合手里已有现成代码、想跑在自己服务器上的场景。

和「应用商店一键装 WordPress」有什么区别

两者都在 Docker 里跑网站,但路径不同:

  • 应用商店一键模板:适合 WordPress 这类现成应用,点一下就把应用和依赖(如 MySQL)一起装好。
  • 本文的「运行环境」路径:适合你自己写的 PHP、Java 项目,需要手动创建对应语言的容器、上传项目文件、按需配数据库。

简单说:应用商店是「装现成应用」,本文是「把自己的代码跑起来」。已有 WordPress 站点想走 Docker 一键装,参考应用商店的用法;本篇聚焦自有 PHP、Java 项目。

部署前要准备什么

开始前确认两件事:

  • 已安装宝塔面板;
  • 已在面板里安装 Docker 管理器。

PHP 项目怎么部署

第一步:创建 PHP 容器

进入「网站 → 运行环境」,选择 PHP(官方教程以 WordPress 为例做测试),点击确认后等待镜像拉取完成;拉取完成后选择「创建网站」并点击确认。

创建 PHP 容器

注意:这一步只是装好了 PHP 运行环境依赖,还没有安装具体应用,需要把项目文件上传到网站运行目录。

第二步:上传项目文件

网站运行目录位于 /www/dk_project/网站名/,把项目文件上传到这个目录并解压。

上传项目文件

第三步:部署数据库(项目需要时)

如果项目需要 MySQL 数据库(比如 WordPress),可以在 Docker 中创建一个 MySQL 数据库容器,再通过面板的数据库功能连接这个 MySQL 容器、创建数据库,权限设置为「所有人」。

第四步:配置网站

修改项目的数据库连接配置。以 WordPress 为例,修改 wp-config-sample.php,也可以复制一份重命名为 wp-config.php 后,把数据库连接信息改成上一步创建的值。

第五步:测试访问

配置完成后,访问网站测试部署效果。

测试访问

Java 项目怎么部署

Java 项目走同样的「传文件 → 配置环境 → 创建网站 → 测试」流程:

  1. 把 Java 项目文件上传到服务器;
  2. 配置 Java 项目的部署参数;
  3. 完成配置后创建网站;
  4. 测试 Java 网站是否正常运行。

Python、Go 项目也是同一个思路:上传项目文件后,在「Docker → 运行环境」里选择对应语言创建环境,再创建网站(填写域名或 IP 地址)并测试访问。

为什么用 Docker 部署自己的项目

  • 统一 PHP、Java 等运行环境,解决依赖冲突;
  • 部署快速且跨平台一致;
  • 资源隔离更安全;
  • 易于扩缩容;
  • 降低运维复杂度与成本。

来源:Docker 网站部署教程·PHP/Java/Python/Go(官方文档)

常见问题

自己写的 PHP 项目怎么用宝塔 Docker 部署?和应用商店一键装 WordPress 有什么区别?

走「网站 → 运行环境」按语言创建容器,再把项目文件上传到运行目录,而不是在应用商店点一键模板。应用商店适合 WordPress 这类现成应用,自己写的项目要手动传文件、按需配数据库。

PHP 项目文件要上传到哪个目录?

网站运行目录位于 /www/dk_project/网站名/,把项目文件上传到这个目录并解压即可。

PHP 项目依赖 MySQL 数据库,Docker 里怎么配?

先在 Docker 里创建一个 MySQL 数据库容器,再用面板的数据库功能连接这个 MySQL 容器、创建数据库,权限设置为「所有人」,最后在项目配置文件里改成对应的数据库连接信息。

Java 项目怎么在 Docker 里跑起来?

把 Java 项目文件上传到服务器,配置好部署参数,完成后创建网站,再访问测试即可,流程和 PHP 项目类似。

用宝塔 Docker 部署自己的项目,需要先准备什么?

需要先安装宝塔面板,并在面板里安装 Docker 管理器,然后才能创建容器、上传项目文件。

为什么推荐用 Docker 部署自己的项目?

Docker 能统一 PHP、Java 等运行环境、解决依赖冲突,部署快速且跨平台一致,资源隔离更安全,也易于扩缩容,能降低运维复杂度与成本。