使用 DPanel 优雅地管理 Docker 容器

使用 DPanel 优雅地管理 Docker 容器
Mr. O对于每一位 Self-hosted 爱好者而言,Docker 是简化应用部署的神器。但当服务器上运行的容器越来越多,散落在各处的 docker-compose.yaml
文件就成了新的问题。
如果你也为此烦恼,那么是时候认识一下 DPanel
了 —— 一个轻量化的容器管理面板。
为什么需要一个 Docker 管理面板?
使用 Docker 和 Docker Compose 部署项目无疑是高效且愉快的。我们可以为每个项目创建一个独立的目录和 docker-compose.yaml
文件,实现轻松部署与环境隔离。
但随着时间的推移,你可能会遇到这些问题:
- 管理混乱:几十个项目的配置文件散落在不同目录,想找某一个配置需要先
cd
到对应的目录。 - 维护困难:更新一个服务的镜像版本,或是修改某个端口映射,都需要先找到对应的
yaml
文件,再手动执行命令。 - 状态不明:无法直观地看到所有容器的运行状态、资源占用和日志信息。
为了解决这些痛点, DPanel应运而生。
DPanel 是什么?
DPanel 是一个开源、轻量化的容器管理面板。它专注于提供核心的容器管理功能,同时保持极低的资源占用(镜像约 150MB,内存占用约 20MB),可以通过容器部署,对宿主机零侵入,安全可靠。
核心亮点:
- 轻量高效:资源占用极低,不给你的服务器增加额外负担。
- 安全可靠:通过容器运行,无需特权,不侵入宿主机系统。
- Compose 管理:支持多种方式添加、管理 Compose 项目
- 功能全面:支持容器管理、日志查看、文件浏览器、快捷访问容器内终端等实用功能。
- 多主机管理:可以通过 API (TLS) 或 SSH 方式,在一个面板中管理多台服务器的 Docker。
- 多语言支持:原生支持中、英、日多国语言,无需额外配置。
如何部署 DPanel
部署 DPanel 非常简单,推荐直接使用 Docker Compose 进行部署。
如果你的服务器尚未安装 Docker 和 Docker Compose ,可以参考以下教程:
第一步:选择版本
DPanel 提供两个版本:
dpanel/dpanel:lite
(轻量版): 不包含 Nginx,适合宿主机上已经安装了反向代理(如 Nginx )的用户。dpanel/dpanel:latest
(标准版): 内置 Nginx,可以为你自动处理域名绑定和 SSL 证书,适合全新环境。
本文以 lite
版本为例,因为它能更好地与现有环境集成。
第二步:创建并配置 compose.yaml
首先,为 DPanel 创建一个工作目录并进入:
1 | mkdir -p /opt/dpanel |
然后,在该目录下创建一个 compose.yaml
文件:
1 | services: |
提示:
docker.sock
的路径通常无需修改。如果你不确定,可以通过docker context inspect $(docker context show) --format '{{.Endpoints.docker.Host}}'
命令来确认。
第三步:启动 DPanel
在 /opt/dpanel
目录下,执行以下命令启动服务:
1 | docker compose up -d |
第四步:初始化
现在,通过浏览器访问 http://<你的服务器IP>:8807
。首次访问会要求你创建管理员账号和密码,设置完成后即可进入管理后台。
核心功能
进入面板后,你会看到一个简洁的仪表盘,展示了服务器和容器的概览信息。
容器管理
在 容器管理 页面,你可以直观地看到所有容器的运行状态、端口映射等。对于每个容器,你都可以进行快捷操作,如:
- 查看日志:实时追踪容器输出。
- 进入终端:直接在浏览器中打开容器的 Shell。
- 文件管理:浏览和管理容器内的文件。
Compose 文件管理
在 Compose 页面,可以方便地管理 compose.yaml
文件,不过这需要我们对 docker-compose.yaml
/ compose.yaml
文件进行迁移,可以查看下面 迁移现有的 Docker Compose 项目 部分
镜像管理
在 镜像管理 管理页面我们可以查看当前主机中的镜像文件,以及所对应的文件是否正在被使用。可以进行 清理、同步、批量删除,也可以导出镜像
还可以进行 仓库管理,对于中国大陆地区非常有帮助。
存储与网络管理
- 在存储管理页面可以直观地查看每个容器使用的匿名卷,以及是否在使用中
- 网络管理页面可以查看 Docker 容器对应的网络
迁移现有的 Docker Compose 项目
我们需要将之前的 Docker Compose 管理的项目迁移至 DPanel 目录下才可以使用 DPanel 进行管理。
迁移已有的项目非常简单,只需两步:
移动并重命名:将你原有的项目文件夹整个移动到 DPanel 的工作目录(
/opt/dpanel/
)下的dpanel/compose
目录中,并将其docker-compose.yaml
文件重命名为compose.yaml
。例如,你有一个项目位于
/root/my-project
:1
2
3
4
5
6
7
8
9
10
11
12
13# 1. 创建目录
mkdir -p /opt/dpanel/dpanel/compose
# 2. 停止正在运行的服务(如果还在运行)
cd /root/my-project
docker compose down
# 3. 移动整个项目目录
mv /root/my-project /opt/dpanel/dpanel/compose
# 4. 复制配置文件
cd /opt/dpanel/dpanel/compose/my-project
mv docker-compose.yaml compose.yaml在面板中管理:刷新 DPanel 页面,它会自动发现
my-project
。
现在只需要点击容器名称即可在面板中对它进行启动、停止、编辑等操作了。
通过这种方式,你可以将所有零散的项目统一到 DPanel 中进行管理。
迁移之前的路径示意:
1 | / |
迁移之后:
1 | /opt/dpanel/ |
与直接使用 docker compose 会自动查询目录下的
compose.yaml
/compose.yaml
docker-compose.yaml
docker-compose.yaml
四个文件不同,DPanel 目前仅支持compose.yaml
文件
资源占用详情
我们可以使用 docker stats
或是 docker compose stats
查看容器的运行资源占用详情
1 | cd /opt/dpanel |
输出如下,可以看到只使用了 22.2MiB 的内容。
1 | CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS |
添加远程服务器
DPanel 支持在一个面板中管理多台主机上的 Docker 实例。推荐使用 SSH 方式进行连接,既安全又免去了繁琐的 Docker Api 证书配置。
操作步骤如下:
第一步:准备远程服务器用户
我们应该使用一个非 root 用户进行连接。
创建新用户
如果你的远程服务器上没有合适的非 root 用户,可以新建一个。例如,创建一个名为dpaneluser
的用户:1
sudo adduser dpaneluser
根据提示设置密码即可。
将用户添加到
docker
组
为了让新用户有权限操作 Docker,需要将其加入docker
用户组:1
sudo usermod -aG docker dpaneluser
提示:执行此命令后,用户需要重新登录(或新开一个 SSH会话)才能使组权限生效。
验证权限
切换到新用户,并尝试执行一条 Docker 命令来验证权限是否配置成功。1
su - dpaneluser
然后执行:
1
docker ps
如果命令成功返回容器列表(即使是空的),说明权限已正确配置。
第二步:准备 SSH 密钥
生成 SSH 密钥
在 运行 DPanel 的服务器(或你的本地电脑)上打开终端,执行以下命令生成密钥对。如果已存在密钥,可以跳过此步。1
ssh-keygen -t ed25519
第一步输入保存名称后,一路按回车键接受默认设置即可,将生成以下两个文件
id_ed25519
: 密钥文件,相当于密码,不可以公开给任何人id_ed25519.pub
: 公钥文件,保存在服务器中后表示可以使用上面的密钥进行认证。
将公钥复制到远程服务器
使用ssh-copy-id
命令将公钥安装到远程服务器的目标用户上。1
ssh-copy-id dpaneluser@<远程服务器IP>
此过程需要输入一次
dpaneluser
用户的密码。如果已禁用 SSH 密码登录,需要手动复制
id_ed25519.pub
至对应用户的~/.ssh/authorized_keys
文件中
第三步:在 DPanel 中配置连接
在 DPanel 界面,导航至 系统 > 多服务端,然后点击 添加服务端 :
- 首先输入 名称 与 标识。
- 连接方式选择 SSH 。
- 打开 启用独立Compose目录 :以便在访问不同服务器时只查看对应的 compose 文件。
- 填入远程服务器的 IP 地址、SSH 端口。
- 验证方式强烈推荐使用 私钥认证,它比密码更安全、更便捷。
- 填写 用户名,手动填写或是导入 密钥文件 。
最后点击确定保存,保存时 DPanel 会尝试连接远程服务器,如果连接失败,配置将无法保存,需要检查修改配置。
添加成功后,你就可以通过 DPanel 顶部的下拉菜单在不同的 Docker 服务端之间轻松切换了。
总结
DPanel 以其轻量、安全和对 Docker Compose 的良好支持,为 Self-hosted 玩家提供了一个管理容器的绝佳方案。
它不仅能帮你理清混乱的 yaml
文件,还能让你对服务器上的所有容器状态一目了然。如果你正在寻找一个简单高效的 Docker 图形化工具,DPanel 绝对值得一试。