From 4f0efa8d7db269720192f6a4e3a2ffcbe35e30b3 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Fri, 2 Jul 2021 11:58:34 +0800 Subject: [PATCH] nixos: nixos/doc/manual/administration/declarative-containers.xml to CommonMark --- .../doc/manual/administration/containers.xml | 2 +- .../declarative-containers.section.md | 48 +++++++++++++++ .../administration/declarative-containers.xml | 60 ------------------- .../declarative-containers.section.xml | 60 +++++++++++++++++++ 4 files changed, 109 insertions(+), 61 deletions(-) create mode 100644 nixos/doc/manual/administration/declarative-containers.section.md delete mode 100644 nixos/doc/manual/administration/declarative-containers.xml create mode 100644 nixos/doc/manual/from_md/administration/declarative-containers.section.xml diff --git a/nixos/doc/manual/administration/containers.xml b/nixos/doc/manual/administration/containers.xml index 0ea6844146e8..f149ce7bbfe6 100644 --- a/nixos/doc/manual/administration/containers.xml +++ b/nixos/doc/manual/administration/containers.xml @@ -29,6 +29,6 @@ independently from the host system. - + diff --git a/nixos/doc/manual/administration/declarative-containers.section.md b/nixos/doc/manual/administration/declarative-containers.section.md new file mode 100644 index 000000000000..273672fc10ca --- /dev/null +++ b/nixos/doc/manual/administration/declarative-containers.section.md @@ -0,0 +1,48 @@ +# Declarative Container Specification {#sec-declarative-containers} + +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: + +```nix +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: + +```nix +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`. diff --git a/nixos/doc/manual/administration/declarative-containers.xml b/nixos/doc/manual/administration/declarative-containers.xml deleted file mode 100644 index d03dbc4d7055..000000000000 --- a/nixos/doc/manual/administration/declarative-containers.xml +++ /dev/null @@ -1,60 +0,0 @@ -
- 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, ... }: - { = true; - = 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. - -
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. + +