首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Docker实战 | 在Docker环境下安装Heimdallr无状态密码管理器

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

原创
作者头像
江湖有缘
发布于 2026-10-30 12:48:40
发布于 2026-10-30 12:48:40
780
举报
文章被收录于专栏:Docker项目实战Docker项目实战

一、Heimdallr介绍

1.1 Heimdallr项目简介

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

1.2 Heimdallr主要特点

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

1.3 项目地址

二、本次实践规划

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正常运行。

代码语言:bash
复制
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版本

代码语言:bash
复制
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f

3.3 检查docker compose 版本

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

代码语言:bash
复制
root@jeven:~# docker compose version
Docker Compose version v2.39.4

四、拉取Heimdallr镜像

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

代码语言:bash:
复制
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 创建部署目录

  • 创建部署目录
代码语言:bash
复制
mkdir -p /data/heimdallr && cd   /data/heimdallr

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

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

代码语言:bash
复制
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 文件,请注意宿主机映射端口可根据您的实际情况自行设置,务必避免端口冲突。

代码语言:bash
复制
vim docker-compose.yaml
代码语言: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容器。

代码语言:bash
复制
docker compose up -d
在这里插入图片描述
在这里插入图片描述

5.4 查看Heimdallr容器状态

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

代码语言:bash
复制
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服务正常运行。

代码语言:bash
复制
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 两种方式均可完成服务启动,能够适配不同运维场景的使用需求。通过本次实践也可以看出,容器非常适合部署这类轻量工具类应用,方便个人本地或内网环境快速搭建安全密码工具。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、Heimdallr介绍
    • 1.1 Heimdallr项目简介
    • 1.2 Heimdallr主要特点
    • 1.3 项目地址
  • 二、本次实践规划
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、拉取Heimdallr镜像
  • 五、部署Heimdallr服务
    • 5.1 创建部署目录
    • 5.2 docker-cli方式部署(可选)
    • 5.3 创建Heimdallr容器
    • 5.4 查看Heimdallr容器状态
    • 5.5 检查Heimdallr容器日志
  • 六、访问Heimdallr服务
    • 6.1 访问初始页
    • 6.2 生成密码
  • 七、总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档