镜像地址:https://hub.docker.com/r/esutwo/privacyidea

1
2
3
4
5
# PrivacyIDEA Docker 部署笔记(esutwo/privacyidea:3.11)

## 1. 拉取官方镜像
```bash
docker pull esutwo/privacyidea:3.11

2. 创建持久化目录

建议在宿主机上创建两个目录:
打开/www/wwwroot/docker/privacyidea目录

1
2
mkdir -p ~/privacyidea/data   # 数据库和运行数据
mkdir -p ~/privacyidea/etc # 配置文件、密钥等

说明:

  • data:存放 SQLite 数据库、导入文件、日志等。

  • etc:存放 privacyIDEA 配置、UUID、加密密钥等,保证容器删除后数据不丢失。


3. 启动容器(后台运行)

/www/wwwroot/docker/privacyidea下打开终端执行如下命令

1
2
3
4
5
6
7
8
9
10
docker run -d \
--name privacyidea \
-p 11458:8000 \
-v /www/wwwroot/docker/privacyidea/data:/pi/mnt \
-v /www/wwwroot/docker/privacyidea/etc:/etc/privacyidea \
-e SECRET_KEY='bigsecret' \
-e PI_PEPPER='dontusethis' \
--restart always \
esutwo/privacyidea:3.11

参数说明:

  • -d:后台运行容器

  • --name privacyidea:容器名称

  • -p 自定义端口:8000:端口映射,主机访问容器 自定义端口

  • -v $(pwd)/data:/pi/mnt:持久化运行数据

  • -v $(pwd)/etc:/etc/privacyidea:持久化配置与密钥


4. 创建管理员账户

1
2
docker exec -it privacyidea \
/opt/privacyidea/bin/pi-manage admin add <用户名> -p <密码>

示例:

1
docker exec -it privacyidea /opt/privacyidea/bin/pi-manage admin add xiaoming -p 147258hyh

5. 访问 Web 界面

在浏览器访问:

1
http://<服务器IP>:自定义端口

使用创建的管理员账号登录。


6. 常用维护命令

  • 启动容器
1
docker start privacyidea
  • 停止容器
1
docker stop privacyidea
  • 查看日志
1
docker logs -f privacyidea
  • 进入容器终端
1
docker exec -it privacyidea bash

7. 数据备份与恢复

  • 备份:直接备份 ~/privacyidea/data~/privacyidea/etc

  • 恢复:在新服务器上创建同名目录并挂载到容器即可


8. 注意事项

  1. 持久化目录一定要挂载,否则容器删除后数据会丢失。

  2. 建议使用反向代理(如 Nginx)和 HTTPS 保护 Web 界面安全。

  3. 数据库初始化完成后,建议定期备份 data 目录。

  4. 如果使用 SQLite,仅适合测试或小型部署;生产环境建议使用 MySQL/PostgreSQL。

1
2
3
4
5
6

---

如果你需要,我可以帮你再写一个 **docker-compose.yml 版本**,一条命令就能启动 privacyIDEA + 数据库 + 持久化,非常适合生产或长期使用。

你希望我直接帮你写吗?