如何在NixOS下启动Docker容器

5
我想在NixOS下运行一个预先构建的docker容器。我希望以Nix风格实现以下两点:
1.通过nix表达式从docker hub安装容器,从而实现可复制性。该docker当前列为“latest”,我希望有一种方法可以转换为版本ID。 2.通过在/etc/nixos/configuration.nix中嵌入表达式(间接地)来从启动时运行容器,预计通过systemd服务来配置这个声明。
我找到了一些关于在nix内部构建docker容器的页面,尽管我甚至无法使这里的第4个示例工作。但是我没有找到任何通过系统声明运行容器的示例。
我非常感激这里的帮助或指针(或示例!),我正在尝试使东西正常工作。我只对docker有一些基本的了解。

这是一个相关的问题:https://github.com/NixOS/nixpkgs/issues/37553 - Robert Hensing
也许你可以在IRC上问copumpkin他的声明式容器模块有什么问题。 - Robert Hensing
根据那个,这是一个实验性的功能? - Chris Stryczynski
2个回答

4

1
我不确定是否有类Unix的方法,但您可以通过拉取Docker镜像来实现(您可以通过指定标签或镜像的sha256值来拉取特定版本)。
然后,您可以使用Docker的守护程序功能在启动时自动启动它(--restart标志),或者编写一个systemd单元文件(此单元文件可能具有与nixos的集成潜力)来为您启动它。
这并不是一个非常确定的答案 - 但是如果没有其他答案,希望这能帮到您!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接