From 4f0efa8d7db269720192f6a4e3a2ffcbe35e30b3 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 2 Jul 2021 11:58:34 +0800 Subject: nixos: nixos/doc/manual/administration/declarative-containers.xml to CommonMark --- .../declarative-containers.section.xml | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 nixos/doc/manual/from_md/administration/declarative-containers.section.xml (limited to 'nixos/doc/manual/from_md/administration/declarative-containers.section.xml') diff --git a/nixos/doc/manual/from_md/administration/declarative-containers.section.xml b/nixos/doc/manual/from_md/administration/declarative-containers.section.xml new file mode 100644 index 000000000000..a918314a2723 --- /dev/null +++ b/nixos/doc/manual/from_md/administration/declarative-containers.section.xml @@ -0,0 +1,60 @@ +
+ Declarative Container Specification + + You can also specify containers and their configuration in the + host’s configuration.nix. For example, the + following specifies that there shall be a container named + database running PostgreSQL: + + +containers.database = + { config = + { config, pkgs, ... }: + { services.postgresql.enable = true; + services.postgresql.package = pkgs.postgresql_9_6; + }; + }; + + + If you run nixos-rebuild switch, the container + will be built. If the container was already running, it will be + updated in place, without rebooting. The container can be configured + to start automatically by setting + containers.database.autoStart = true in its + configuration. + + + By default, declarative containers share the network namespace of + the host, meaning that they can listen on (privileged) ports. + However, they cannot change the network configuration. You can give + a container its own network as follows: + + +containers.database = { + privateNetwork = true; + hostAddress = "192.168.100.10"; + localAddress = "192.168.100.11"; +}; + + + This gives the container a private virtual Ethernet interface with + IP address 192.168.100.11, which is hooked up to + a virtual Ethernet interface on the host with IP address + 192.168.100.10. (See the next section for details + on container networking.) + + + To disable the container, just remove it from + configuration.nix and run + nixos-rebuild switch. Note that this will not + delete the root directory of the container in + /var/lib/containers. Containers can be destroyed + using the imperative method: + nixos-container destroy foo. + + + Declarative containers can be started and stopped using the + corresponding systemd service, e.g. + systemctl start container@database. + +
-- cgit v1.2.3