我希望有一个外部网络可见的nixos容器。我想为该容器设置一个静态IP,我家网络上的其他笔记本电脑可以插入到容器中。容器应该不仅可以访问它所驻留的主机。所以我们标记这些计算机。 (A)是nixos主持人。 (B)是居住在(A)上的容器。并且(C)是网络上想要通过网络访问(B)的第三个单独的计算机。如果有人可以提供应该添加到/etc/nixos/configuration.nix
文件中的最简单的配置来实现这一目标,那将非常感激。
+-------------------+ +--------+ | | | | | +--------+ A | | C | | | | | | +-----------------------------------> B | | | | | | | | +--------+ | | | | | +--------+ | | | | | +-------------------+
答案 0 :(得分:1)
有几种方法可以做到这一点,并且所有这些都不是NixOS特有的。
haproxy
)答案 1 :(得分:0)
要完成danbst答案,对于选项2,您可以使用容器选项privateNetwork = false;
来禁用网络命名空间。
See container.nix code了解详情。使用此选项,您将在主机和容器之间共享相同的IP地址。
另一种选择是使用ForwardPorts options将端口从容器转发到主机。
更通用的方式(也适用于NixOps)它使用主机networking.nat
选项,例如:
networking.nat = {
enable=true;
internalInterfaces=["ve-+"];
externalInterface = "enp0s3";
forwardPorts = [
{destination = "mycontainerIP:80"; sourcePort = 80;}
];
};