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

时间:2018-11-19 19:51:47

标签: docker nixos

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

  1. 通过nix表达式从docker hub本身安装容器,因此可重复生成。 Docker当前被列为“最新”,我希望可以通过某种方式将其转换为版本ID。
  2. 大概是通过/etc/nixos/configuration.nix服务将表达式(间接地)嵌入systemd中,从而从启动运行容器,从而以声明方式进行配置。

尽管我什至无法获得示例4 here的帮助,但我还是从nix中找到了一些有关构建 docker容器的页面。但是我还没有通过系统声明找到任何运行容器的示例。

在这里,我真的很感谢一些帮助或指针(或示例!),我在努力使工作正常化。我对Docker只是一无所知。

2 个答案:

答案 0 :(得分:1)

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

然后使用docker的守护程序功能在引导时自动启动(--restart标志),或者您可以编写一个systemd单位文件(该单位文件可能与nixos集成在一起)来启动它为你。

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

答案 1 :(得分:1)

自 NixOS 20.09 起,有 virtualisation.oci-containers 选项可让您定义任意 OCI-compliant 容器以映射到 systemd 单元。

NixOS 20.03 中曾经也有 config.docker-containers,但此选项已被弃用,以支持上述内容。