Docker实战 | 在Docker环境下安装Heimdallr无状态密码管理器

举报
江湖有缘 发表于 2026/08/13 02:06:04 2026/08/13
【摘要】 Docker实战 | 在Docker环境下安装Heimdallr无状态密码管理器


一、Heimdallr介绍

1.1 Heimdallr项目简介

Heimdallr 是一款基于哈希算法的无状态密码管理器与生成器。它摒弃了传统的数据库存储方式,用户只需牢记一个主密码,即可通过“主密码+网站标识”实时派生出全网各个网站的独立密码,彻底解决密码遗忘与多端同步的烦恼。

1.2 Heimdallr主要特点

  • 无状态架构:无需任何数据库存储,从根本上杜绝了因服务器宕机或数据库泄露导致的密码丢失风险。
  • 确定性派生:基于哈希算法实时生成密码,只要输入参数一致,生成的密码就永远相同,实现真正的跨设备免同步。
  • 强制改密机制:内置版本号迭代功能,当网站要求定期修改密码时,只需调整版本号即可一键生成全新密码。
  • 军工级安全:支持字母、数字及特殊符号的自由组合,最高可生成 128 位的高强度密码,满足极高的安全需求。
  • 极简部署访问:支持 Docker 一键极速部署,部署完成后可通过手机或电脑浏览器随时随地生成密码。

1.3 项目地址

  • Github项目地址:https://github.com/AMEST/Heimdallr

二、本次实践规划

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。

hostname IP地址 操作系统版本 Docker版本 部署项目 备注
jeven 192.168.3.88 Ubuntu 24.04.2 LTS 28.5.0 Heimdallr 镜像版本v1.2.2

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下安装Heimdallr无状态密码管理器。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Sun 2026-05-31 23:17:28 CST; 1 month 29 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 945 (dockerd)
      Tasks: 117
     Memory: 787.7M (peak: 1018.4M swap: 11.8M swap peak: 12.6M)
        CPU: 58min 1.415s
     CGroup: /system.slice/docker.service

在这里插入图片描述

3.2 检查Docker版本

检查Docker版本

root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取Heimdallr镜像

下载DockDash镜像,使用的镜像版本为: eluki/heimdallr-password-manager:v1.2.2

root@jeven:~# docker pull eluki/heimdallr-password-manager:v1.2.2
v1.2.2: Pulling from eluki/heimdallr-password-manager
61ffccc6e275: Pull complete
cd9325c31137: Pull complete
4ac573bb1f6c: Pull complete
e1a65f01f534: Pull complete
45e0000624bf: Pull complete
4be1e66dce58: Pull complete
8d8af9465f22: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:fce2d724d416a31d3fa8c32dfde296058cdd4f4af092fff0fbb774410e52d501
Status: Downloaded newer image for eluki/heimdallr-password-manager:v1.2.2
docker.io/eluki/heimdallr-password-manager:v1.2.2

在这里插入图片描述

五、部署Heimdallr服务

5.1 创建部署目录

  • 创建部署目录
mkdir -p /data/heimdallr && cd   /data/heimdallr

5.2 docker-cli方式部署(可选)

如果想要使用docker-cli方式部署,可参考以下命令部署。(可选)

docker run -d \
   --restart always \
   --name heimdallr \
   -p 5200:80 \
   eluki/heimdallr-password-manager:v1.2.2

5.3 创建Heimdallr容器

本次实践我们采用 Docker Compose 方式进行部署,这也是我推荐的方式。首先我们需要创建并编辑 docker-compose.yaml 文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。

vim docker-compose.yaml
version: '3.8'

services:
  host:
    image: eluki/heimdallr-password-manager:v1.2.2
    container_name: heimdallr
    restart: always
    ports:
      - "5200:80"
    deploy:
      resources:
        limits:
          memory: 256M
          cpus: '0.5'
    logging:
      driver: "json-file"
      options:
        max-size: "3m"
        max-file: "3"




执行以下命令,创建Heimdallr容器。

docker compose up -d

在这里插入图片描述

5.4 查看Heimdallr容器状态

检查Heimdallr容器运行状态,确保Heimdallr容器正常启动。

root@jeven:/data/heimdallr# docker compose ps
WARN[0000] /data/heimdallr/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME        IMAGE                                     COMMAND                   SERVICE   CREATED          STATUS          PORTS
heimdallr   eluki/heimdallr-password-manager:v1.2.2   "dotnet Heimdallr.Ho…"   host      28 seconds ago   Up 27 seconds   0.0.0.0:5200->80/tcp, [::]:5200->80/tcp

在这里插入图片描述

5.5 检查Heimdallr容器日志

检查容器运行日志,确保Heimdallr服务正常运行。

docker compose logs

在这里插入图片描述

六、访问Heimdallr服务

6.1 访问初始页

浏览器地址: http://<个人的服务器IP>:5200,访问Heimdallr初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

在这里插入图片描述

6.2 生成密码

  • 密码配置项介绍如下:
参数 描述
Service name 目标服务的标识名称,作为密码派生的输入因子之一。
Common name 服务关联的账号或密码 ID,与 Service name 共同确定唯一密码。
Master password 主密码,结合服务名称、账号及字典通过哈希算法派生出确定性密码。
Include letters 控制生成的密码中是否包含字母字符。
Include numbers 控制生成的密码中是否包含数字字符。
Include symbols 控制生成的密码中是否包含特殊符号字符。
Password length 设定生成密码的字符长度。
Version 密码版本号,递增该值可在不更改主密码的情况下派生新密码。

自行填写相关信息,点击生成密码即可。

在这里插入图片描述

在这里插入图片描述

七、总结

本次在 Docker 中完成了 Heimdallr 无状态密码管理器的部署实践,借助容器可以快速搭建起轻量化的密码生成管理服务。整个部署流程操作简单,无需复杂数据库配置,充分体现了无状态应用部署便捷、迁移灵活的优势。使用 Docker Compose 或者 docker‑cli 两种方式均可完成服务启动,能够适配不同运维场景的使用需求。通过本次实践也可以看出,容器非常适合部署这类轻量工具类应用,方便个人本地或内网环境快速搭建安全密码工具。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。