diff options
author | Bobby Rong <rjl931189261@126.com> | 2021-07-02 11:58:34 +0800 |
---|---|---|
committer | Bobby Rong <rjl931189261@126.com> | 2021-07-02 11:58:34 +0800 |
commit | 4f0efa8d7db269720192f6a4e3a2ffcbe35e30b3 (patch) | |
tree | 21947e591d77b4f503751cfc7cb505a0f82314e1 /nixos/doc/manual/administration | |
parent | 0ac3e57ac1caa8249b966acda47ae3c08e5d31f1 (diff) |
nixos: nixos/doc/manual/administration/declarative-containers.xml to CommonMark
Diffstat (limited to 'nixos/doc/manual/administration')
3 files changed, 49 insertions, 61 deletions
diff --git a/nixos/doc/manual/administration/containers.xml b/nixos/doc/manual/administration/containers.xml index 0ea6844146e8f..f149ce7bbfe62 100644 --- a/nixos/doc/manual/administration/containers.xml +++ b/nixos/doc/manual/administration/containers.xml @@ -29,6 +29,6 @@ independently from the host system. </para> <xi:include href="../from_md/administration/imperative-containers.section.xml" /> - <xi:include href="declarative-containers.xml" /> + <xi:include href="../from_md/administration/declarative-containers.section.xml" /> <xi:include href="container-networking.xml" /> </chapter> 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 0000000000000..273672fc10ca9 --- /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 d03dbc4d70556..0000000000000 --- a/nixos/doc/manual/administration/declarative-containers.xml +++ /dev/null @@ -1,60 +0,0 @@ -<section xmlns="http://docbook.org/ns/docbook" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:xi="http://www.w3.org/2001/XInclude" - version="5.0" - xml:id="sec-declarative-containers"> - <title>Declarative Container Specification</title> - - <para> - You can also specify containers and their configuration in the host’s - <filename>configuration.nix</filename>. For example, the following specifies - that there shall be a container named <literal>database</literal> running - PostgreSQL: -<programlisting> -containers.database = - { config = - { config, pkgs, ... }: - { <xref linkend="opt-services.postgresql.enable"/> = true; - <xref linkend="opt-services.postgresql.package"/> = pkgs.postgresql_9_6; - }; - }; -</programlisting> - If you run <literal>nixos-rebuild switch</literal>, 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 <literal>containers.database.autoStart = true</literal> in its - configuration. - </para> - - <para> - 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: -<programlisting> -containers.database = { - <link linkend="opt-containers._name_.privateNetwork">privateNetwork</link> = true; - <link linkend="opt-containers._name_.hostAddress">hostAddress</link> = "192.168.100.10"; - <link linkend="opt-containers._name_.localAddress">localAddress</link> = "192.168.100.11"; -}; -</programlisting> - This gives the container a private virtual Ethernet interface with IP address - <literal>192.168.100.11</literal>, which is hooked up to a virtual Ethernet - interface on the host with IP address <literal>192.168.100.10</literal>. (See - the next section for details on container networking.) - </para> - - <para> - To disable the container, just remove it from - <filename>configuration.nix</filename> and run <literal>nixos-rebuild - switch</literal>. Note that this will not delete the root directory of the - container in <literal>/var/lib/containers</literal>. Containers can be - destroyed using the imperative method: <literal>nixos-container destroy - foo</literal>. - </para> - - <para> - Declarative containers can be started and stopped using the corresponding - systemd service, e.g. <literal>systemctl start container@database</literal>. - </para> -</section> |