2.启动容器
对应的官方页面地址
请注意,docker run
命令的名字略有误导性,因为它不仅会创建一个容器,它还会启动此容器。当在仅停止容器而不移除此容器后使用 docker run
命令时,会导致发生冲突。为了一个简单的开始,请接着往下看。
创建容器
持久性数据存储在容器内的 /data
下,因此使用 Docker 进行持久性部署的唯一要求是挂载持久性卷。创建一个本地目录来映射容器的持久存储:
如果你碰巧使用 SELinux (RHEL & Clones / Fedora),你必须设置持久存储的上下文,以便容器可以写入它:
所有持久性数据将保存在 /vw-data/
路径下,您可以根据自己的需要调整此路径。
该服务将暴露在主机的 80 或 8080 端口上。默认情况下,非 root 容器不允许使用特权端口 (<1024),因此需要通过端口映射来传递 ROCKET_PORT
环境变量以更改 Vaultwarden 的监听端口。
对于非 x86 硬件或要运行特定版本,可以选择其他镜像。
如果您的 docker/vaultwarden 运行在具有固定 IP 的设备上,则可以将主机端口绑定到该 IP 地址,从而避免将主机端口暴露到网络上。如下所示,将 IP 地址(例如 192.168.0.2)添加到主机端口和容器端口前面:
启动容器
如果运行了 docker stop vaultwarden
命令,或重启,亦或任何其他原因,容器停止了,则可以使用以下命令将其启动:
自定义容器启动
如果您想在容器启动时运行自定义启动脚本,可以将 /etc/vaultwarden.sh
作为单个脚本和/或将 /etc/vaultwarden.d
作为脚本目录挂载到容器中。对于后一种情况,只有扩展名为 .sh
的文件才会运行,因此具有其他扩展名的文件(例如,data/config 文件)则可以驻留在同一个目录中(具体的工作方式请参见 start.sh)。
自定义启动脚本对于修补网页密码库文件或安装额外的包、CA 证书等非常有用,因为可以让您不必构建和维护您自己的 Docker 镜像。
示例
假设您的脚本名为 init.sh
,其包含以下内容:
您可以像这样在启动时运行此脚本:
如果您运行 docker logs vaultwarden
,现在您应该能看到 starting up
作为输出的第一行。
请注意,每次容器启动时都会运行初始化脚本(而不仅仅是第一次),所以这些脚本通常应该是幂等的(即,您可以多次运行这些脚本而不会出现不良/异常)。如果您的脚本天然没有此属性,你可以这样做:
最后更新于