首页
/ Dokku 在 Debian 系统上的安装与配置指南

Dokku 在 Debian 系统上的安装与配置指南

2025-07-05 04:43:25作者:温艾琴Wonderful

前言

Dokku 是一个轻量级的开源 PaaS 平台,使用 Docker 容器技术来简化应用程序的部署和管理。本文将详细介绍如何在 Debian 系统上通过 Debian 包安装 Dokku,并讲解相关的配置选项。

系统要求

在开始安装前,请确保您的系统满足以下要求:

  • 运行 Debian 或基于 Debian 的 Linux 发行版
  • 具有 root 或 sudo 权限
  • 稳定的网络连接

安装步骤

1. 安装 Docker

Dokku 依赖于 Docker 作为其容器运行时环境。执行以下命令安装 Docker:

wget -nv -O - https://get.docker.com/ | sh

这条命令会从 Docker 官方获取安装脚本并自动执行安装过程。

2. 添加 Dokku 软件源

首先添加 Dokku 的 GPG 密钥以验证软件包:

wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc

然后根据系统信息自动确定发行版和代号,并添加软件源:

DISTRO="$(awk -F= '$1=="ID" { print tolower($2) ;}' /etc/os-release)"
OS_ID="$(awk -F= '$1=="VERSION_CODENAME" { print tolower($2) ;}' /etc/os-release)"
echo "deb https://packagecloud.io/dokku/dokku/${DISTRO}/ ${OS_ID} main" | sudo tee /etc/apt/sources.list.d/dokku.list

3. 安装 Dokku

更新软件包列表并安装 Dokku:

sudo apt-get update -qq >/dev/null
sudo apt-get -qq -y install dokku
sudo dokku plugin:install-dependencies --core

自动化安装配置

对于自动化部署场景,可以使用 debconf 工具预先配置 Dokku 的安装选项。

常用配置选项

  1. 启用基于虚拟主机的部署模式:
echo "dokku dokku/vhost_enable boolean true" | sudo debconf-set-selections
  1. 设置主机名(用于虚拟主机域名和显示应用 URL):
echo "dokku dokku/hostname string yourdomain.com" | sudo debconf-set-selections
  1. 跳过 SSH 密钥检查(不推荐用于生产环境):
echo "dokku dokku/skip_key_file boolean true" | sudo debconf-set-selections
  1. 指定 SSH 密钥路径:
echo "dokku dokku/key_file string /path/to/your/key.pub" | sudo debconf-set-selections
  1. 禁用 Nginx 插件:
echo "dokku dokku/nginx_enable boolean false" | sudo debconf-set-selections

安装后配置

安装完成后,建议执行以下操作:

  1. 访问 Dokku 的 Web 界面完成初始配置(通常在服务器 IP 地址的 80 端口)
  2. 添加 SSH 密钥(如果未在安装时自动添加)
  3. 检查并安装所需的插件

常见问题解答

Q: 安装过程中出现 GPG 密钥错误怎么办? A: 请确保网络连接正常,并重新执行添加 GPG 密钥的命令。

Q: 如何修改安装后的配置? A: 可以运行 sudo dpkg-reconfigure dokku 命令重新配置 Dokku。

Q: 为什么我的应用无法通过域名访问? A: 请检查是否启用了 vhost_enable 选项,并确保域名已正确解析到服务器 IP。

总结

通过本文介绍的 Debian 包安装方式,您可以快速地在 Debian 系统上部署 Dokku 平台。自动化安装选项特别适合需要批量部署的场景。安装完成后,您就可以开始使用这个轻量级的 PaaS 平台来管理和部署您的应用程序了。