如何在 nixos 下启动时运行 docker 容器

use*_*536 5 docker nixos

我想在 NixOS 下运行一个预构建的 docker 容器。我想以尼克斯式的方式做到这一点:

  1. 通过 nix 表达式从 docker hub 本身安装容器,因此是可重现的。docker 目前被列为“最新”,我希望有某种方法可以从该版本转换为版本 ID。
  2. /etc/nixos/configuration.nix通过在 中(间接)嵌入表达式(可能是通过服务)从启动运行容器systemd,从而以声明方式配置它。

我找到了一些关于从 nix 内部构建docker 容器的页面,尽管我什至无法让示例 4在这里工作。但我还没有找到任何通过系统声明运行容器的示例。

我真的很感谢这里的一些帮助或指示(或示例!),我正在努力让东西工作。我对 docker 的了解只是一时的了解。

Chr*_*ski 1

不确定是否是“nix-ish”方式,但如果您只是拉取 docker 映像(您可以通过指定图像的标签或 sha256 来拉取特定版本)。

然后使用 docker 的守护进程功能在启动时自动启动(--restart标志),或者您可以编写一个 systemd 单元文件(该单元文件可能与 nixos 具有一些集成潜力)来为您启动它。

不是一个非常结论性的答案 - 但没有看到其他答案,希望这会有所帮助!