首页
/ Dokku项目Docker安装与配置完全指南

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密钥配置

  1. 进入容器:
docker exec -it dokku bash
  1. 添加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命令部署应用。

高级配置建议

  1. 网络配置:生产环境应考虑使用独立的Docker网络
  2. 资源限制:为容器设置CPU和内存限制
  3. TLS证书:配置Let's Encrypt自动获取证书
  4. 日志管理:配置日志轮转和集中收集

常见问题排查

  1. 容器启动失败:检查docker logs dokku输出
  2. 端口冲突:修改映射端口或停止占用端口的服务
  3. 权限问题:确保/var/lib/dokku目录有正确权限

结语

通过Docker部署Dokku可以快速搭建一个功能完善的PaaS环境。本文介绍了从基础安装到高级配置的全过程,开发者可以根据实际需求调整配置参数。Dokku的轻量级特性使其成为个人开发和小型团队部署应用的理想选择。