Skip to content

使用 Docker 安装

DANGER

管理容器文件时,面板会自动创建 dpanel-plugin-explorer 容器进行权限隔离。 该容器使用 alpine 镜像,不暴露任何端口,关闭访问页面后自动销毁。 你也可以 手动创建,容器名称需保持为 dpanel-plugin-explorer。 如无法接受自动创建,请勿使用【文件管理】功能。


🚀🚀🚀 使用安装脚本可快速安装、升级 DPanel 面板

镜像地址

TIP

根据实际的版本需求及网络环境,选择镜像地址替换示例中的镜像地址

基于 Alpine 镜像

shell
dpanel/dpanel:latest
shell
dpanel/dpanel:lite
shell
registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:latest
shell
registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:lite

基于 Debian 镜像

shell
dpanel/dpanel:latest-debian
shell
dpanel/dpanel:lite-debian
shell
registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:latest-debian
shell
registry.cn-hangzhou.aliyuncs.com/dpanel/dpanel:lite-debian

标准版

WARNING

后续命令演示均以【标准版】为例,请根据实际安装的版本替换参数及镜像地址。

标准版提供域名绑定及证书功能,需要映射 80 及 443 端口。如不需要这些功能,请使用 Lite 版。 Lite 版与标准版仅镜像地址不同,除无需映射 80 及 443 端口外,其余配置一致。

shell
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

Lite 版

shell
docker run -d --name dpanel --restart=always \
 -p 8807:8080 -e APP_NAME=dpanel \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:lite

Podman

Podman 与 Docker 命令兼容,将创建命令中的 docker 替换为 podman 即可:

shell
podman run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \
 -v /run/podman/podman.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

Rootless

Podman 支持在非 root 用户下管理容器。创建面板容器前,需先激活普通用户的 podman.sock 会话:

shell
systemctl --user enable --now podman.socket

将用户的 podman.sock 文件映射到面板容器的 /var/run/docker.sock 文件

js
podman run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \
 -v /run/user/1000/podman/podman.sock:/var/run/docker.sock  \ 
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

Docker Desktop (Windows / Macos)

通过 //var/run/docker.sock 挂载 docker.sock 文件:

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \
 -v //var/run/docker.sock:/var/run/docker.sock // \
 -v D:\data\dpanel:/dpanel dpanel/dpanel:latest 
js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \
 -v //var/run/docker.sock:/var/run/docker.sock // \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

使用 Docker Tcp 管理

使用 Docker Tcp 时,创建面板容器无需挂载 /var/run/docker.sock 文件,通过 DOCKER_HOST 环境变量指定接口地址即可。

TIP

通过 --add-host 将宿主机 IP 绑定到容器,否则需使用宿主机在局域网内的 IP。

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \ 
 --add-host=host.dpanel.local:host-gateway  \ 
 -e DOCKER_HOST=tcp://host.dpanel.local:2375 \
 -v /home/dpanel dpanel/dpanel:latest

自定义面板管理端口

使用默认命令安装后,通过 http://127.0.0.1:8807 访问面板。可自定义 8080 端口的对外映射端口:

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 2456:8080 -e APP_NAME=dpanel \  
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

使用主机网络 --network host

使用主机网络时,默认通过 http://hostip:8080 访问面板。如需更改端口,添加环境变量 APP_SERVER_PORT=2456。 需确保主机端口未被占用(标准版还包含 80 及 443 端口)。

WARNING

使用主机网络时,添加容器域名转发时只能通过 IP:PORT 的形式

js
docker run -d --name dpanel --restart=always \
 -e APP_NAME=dpanel -e APP_SERVER_PORT=2456 --network host \  
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

配置面板代理

创建面板时通过环境变量配置容器内代理地址。 如代理地址为宿主机,请勿使用 127.0.0.1 或 localhost(这些地址指向容器本身),应使用宿主机局域网地址:

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \ 
 -e HTTP_PROXY="http://192.168.1.5:7890" \  
 -e HTTPS_PROXY="http://192.168.1.5:7890" \  
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

自定义面板密钥文件 DPanel Version >= 1.8.1

面板使用 RSA 算法进行登录验证及 SSH 相关功能,启动时自动生成 RSA 公/私钥文件(仅当文件不存在时),位于 /dpanel/cert/rsa 目录。

也可将本机的 ~/.ssh/id_rsa~/.ssh/id_rsa.pub 文件挂载到面板容器。 添加 SSH 权限时选择【使用面板密钥】,容器即可直接使用宿主机权限,实现权限的统一管理及快速更新:

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \ 
 -v /home/test/.ssh/id_rsa:/dpanel/cert/rsa/id_rsa \  
 -v /home/test/.ssh/id_rsa.pub:/dpanel/cert/rsa/id_rsa.pub  \  
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

自定义宿主机目录存储

TIP

如果需要挂载 compose yaml 文件或是在 compose yaml 中使用相对路径,请务必将挂载 /dpanel 目录到宿主机。添加 compose 任务查看 通过挂载存储路径的方式创建

面板运行时产生的数据存储在容器内的 /dpanel 目录中。创建时如未挂载该目录,Docker 会自动挂载到存储卷。 可自定义容器内 /dpanel 目录的宿主机挂载路径(需使用绝对路径):

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \ 
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/test/dpanel:/dpanel dpanel/dpanel:latest 

配置面板管理员用户名密码

创建面板容器后,首次进入需要先配置管理员用户和密码。忘记密码时可重置用户名密码

自定义面板容器名称

如需更改面板容器名称或同时安装多个面板,可通过 APP_NAME 环境变量配置:

js
docker run -d --restart=always \ 
 --name dpanel-test -e APP_NAME=dpanel-test \ 
 -p 80:80 -p 443:443 -p 8807:8080  \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

自定义面板访问二级目录

默认情况下面板访问地址为 http://127.0.0.1:8807/dpanel/ui,你可以通过配置环境变量 DP_SYSTEM_BASEURL 指定二级访问目录为 http://127.0.0.1:8807/apps/dpanel/ui

WARNING

自定义目录时,需要尽量避免包含 /dpanel、/ws/common、/api 防止重复替换导致路径错误

js
docker run -d --restart=always \ 
 --name dpanel
 -e DP_SYSTEM_BASEURL=/apps \ 
 -p 80:80 -p 443:443 -p 8807:8080  \
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

绑定宿主机 host

容器内访问 127.0.0.1 或 localhost 指向容器本身。

访问宿主机时,需使用宿主机在局域网内的地址或注入的宿主机地址 host.dpanel.local

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \ 
 --add-host=host.dpanel.local:host-gateway \  
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

切割日志文件

面板将警告及以上级别的日志写入 /dpanel/logs/ 目录,运行时日志由 Docker 管理。 为避免日志文件过大,可配置容器日志切割:

js
docker run -d --name dpanel --restart=always \
 -p 80:80 -p 443:443 -p 8807:8080 -e APP_NAME=dpanel \ 
 --log-driver json-file  --log-opt max-size=5m --log-opt max-file=10 \  
 -v /var/run/docker.sock:/var/run/docker.sock \
 -v /home/dpanel:/dpanel dpanel/dpanel:latest

开启 IPV6

如 Docker 环境未配置默认 IPv6 支持,标准版将无法转发 IPv6 地址。可在面板中创建任意 IPv6 网络,并将面板容器加入该网络。

更新或重建面板

更新与重建的区别在于是否保留面板挂载目录(/dpanel)的配置。 删除宿主机挂载目录或重新指定目录为重建面板,否则为升级面板查看升级命令

手动创建文件管理插件

TIP

将文件管理容器的标签 com.dpanel.container.auto_remove 配置为 true 时,面板会在每次关闭浏览器后自动清理容器;配置为 false 则不清理。

js
docker run -it -d --name dpanel-plugin-explorer --restart always --pid host --label com.dpanel.container.title="DPanel 文件管理助手" --label com.dpanel.container.auto_remove=false alpine