如何使用 Docker 安装自托管 Excalidraw
简介
Excalidraw 提供了官方 Docker 镜像 excalidraw/excalidraw
,让你可以在自己的域名下、Kubernetes、AWS ECS 等环境中自托管 Excalidraw 客户端。这个 Docker 镜像不包含任何分析和追踪库。
效果图:
先决条件
- 已安装 Docker
- 基本的终端/命令行操作知识
- (可选)Docker Compose 用于更方便的部署
安装步骤
方法 1:直接使用官方镜像
最简单的方法是直接拉取并运行官方 Docker 镜像:
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest
这将在端口 5000 上启动 Excalidraw。你可以通过访问 http://localhost:5000
来使用它。
方法 2:构建并运行自己的镜像
如果你想自己构建镜像,可以按照以下步骤操作:
- 克隆 Excalidraw 仓库:
git clone https://github.com/excalidraw/excalidraw.git
cd excalidraw
- 构建 Docker 镜像:
docker build -t excalidraw/excalidraw .
- 运行构建的镜像:
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest
方法 3:使用 Docker Compose
创建一个 docker-compose.yml
文件:
version: '3'
services:
excalidraw:
image: excalidraw/excalidraw:latest
container_name: excalidraw
ports:
- "5000:80"
restart: unless-stopped
然后运行:
docker-compose up -d
访问 Excalidraw
安装完成后,打开浏览器并访问:http://localhost:5000
自定义端口
如果你想使用其他端口而不是 5000,只需修改映射关系。例如,要使用端口 8080:
docker run --rm -dit --name excalidraw -p 8080:80 excalidraw/excalidraw:latest
限制
目前,自托管的 Excalidraw 实例不支持分享和协作功能。Excalidraw 团队正在努力提供一个功能完善的自托管解决方案。
持久化数据
Excalidraw 的数据主要存储在浏览器的本地存储中。Docker 容器本身不需要持久化存储来保存用户创建的图表。
故障排除
- 如果无法访问 Excalidraw,请检查端口是否被其他服务占用。
- 确保 Docker 服务正在运行。
- 检查容器状态:
docker ps
或docker logs excalidraw
更新 Excalidraw
要更新到最新版本的 Excalidraw:
# 拉取最新镜像
docker pull excalidraw/excalidraw:latest
# 停止并移除旧容器
docker stop excalidraw
docker rm excalidraw
# 启动新容器
docker run --rm -dit --name excalidraw -p 5000:80 excalidraw/excalidraw:latest
如果使用 Docker Compose:
docker-compose pull
docker-compose up -d