Dokku项目Docker安装与配置完全指南
2025-07-05 04:45:21作者:傅爽业Veleda
前言
Dokku是一个轻量级的PaaS平台,使用Docker容器技术实现类似Heroku的部署体验。本文将详细介绍如何在Docker环境中安装和配置Dokku,帮助开发者快速搭建自己的微型PaaS平台。
基础安装
拉取Dokku镜像
首先需要从官方仓库拉取Dokku的Docker镜像:
docker pull dokku/dokku:0.35.20
建议始终使用带有明确版本标签的镜像,以确保环境一致性。
运行Dokku容器
运行Dokku容器需要配置多个参数,以下是标准启动命令:
docker container run -d \
--env DOKKU_HOSTNAME=dokku.me \
--env DOKKU_HOST_ROOT=/var/lib/dokku/home/dokku \
--env DOKKU_LIB_HOST_ROOT=/var/lib/dokku/var/lib/dokku \
--name dokku \
--publish 3022:22 \
--publish 8080:80 \
--publish 8443:443 \
--volume /var/lib/dokku:/mnt/dokku \
--volume /var/run/docker.sock:/var/run/docker.sock \
dokku/dokku:0.35.20
参数说明:
DOKKU_HOSTNAME
:设置Dokku的主机名- 端口映射:将容器SSH(22)、HTTP(80)、HTTPS(443)分别映射到主机的3022、8080、8443端口
- 数据卷:持久化存储Dokku数据到主机目录
- Docker套接字:允许Dokku管理主机上的Docker
使用Docker Compose
对于更复杂的部署场景,推荐使用Docker Compose:
services:
dokku:
image: dokku/dokku:0.35.20
container_name: dokku
network_mode: bridge
ports:
- "3022:22"
- "8080:80"
- "8443:443"
volumes:
- "/var/lib/dokku:/mnt/dokku"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
DOKKU_HOSTNAME: dokku.me
DOKKU_HOST_ROOT: /var/lib/dokku/home/dokku
DOKKU_LIB_HOST_ROOT: /var/lib/dokku/var/lib/dokku
restart: unless-stopped
插件管理
启动时自动安装插件
在主机上创建/var/lib/dokku/plugin-list
文件,格式如下:
postgres: https://github.com/dokku/dokku-postgres.git
redis: https://github.com/dokku/dokku-redis.git
容器启动时会自动安装这些插件。
构建自定义镜像
通过Dockerfile预先安装插件:
FROM dokku/dokku:0.35.20
RUN dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
RUN dokku plugin:install https://github.com/dokku/dokku-redis.git redis
SSH密钥配置
- 进入容器:
docker exec -it dokku bash
- 添加SSH公钥:
echo "ssh-rsa AAAAB3NzaC1yc2E..." | dokku ssh-keys:add admin
应用部署配置
为方便部署,建议在本地~/.ssh/config
中添加配置:
Host dokku.docker
HostName 127.0.0.1
Port 3022
这样可以通过git push dokku.docker master
命令部署应用。
高级配置建议
- 网络配置:生产环境应考虑使用独立的Docker网络
- 资源限制:为容器设置CPU和内存限制
- TLS证书:配置Let's Encrypt自动获取证书
- 日志管理:配置日志轮转和集中收集
常见问题排查
- 容器启动失败:检查
docker logs dokku
输出 - 端口冲突:修改映射端口或停止占用端口的服务
- 权限问题:确保
/var/lib/dokku
目录有正确权限
结语
通过Docker部署Dokku可以快速搭建一个功能完善的PaaS环境。本文介绍了从基础安装到高级配置的全过程,开发者可以根据实际需求调整配置参数。Dokku的轻量级特性使其成为个人开发和小型团队部署应用的理想选择。