summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBobby Rong <rjl931189261@126.com>2021-07-02 11:58:34 +0800
committerBobby Rong <rjl931189261@126.com>2021-07-02 11:58:34 +0800
commit4f0efa8d7db269720192f6a4e3a2ffcbe35e30b3 (patch)
tree21947e591d77b4f503751cfc7cb505a0f82314e1
parent0ac3e57ac1caa8249b966acda47ae3c08e5d31f1 (diff)
nixos: nixos/doc/manual/administration/declarative-containers.xml to CommonMark
-rw-r--r--nixos/doc/manual/administration/containers.xml2
-rw-r--r--nixos/doc/manual/administration/declarative-containers.section.md48
-rw-r--r--nixos/doc/manual/administration/declarative-containers.xml60
-rw-r--r--nixos/doc/manual/from_md/administration/declarative-containers.section.xml60
4 files changed, 109 insertions, 61 deletions
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.
</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 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 @@
-<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>
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 @@
+<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-declarative-containers">
+ <title>Declarative Container Specification</title>
+ <para>
+ You can also specify containers and their configuration in the
+ host’s <literal>configuration.nix</literal>. For example, the
+ following specifies that there shall be a container named
+ <literal>database</literal> running PostgreSQL:
+ </para>
+ <programlisting language="bash">
+containers.database =
+ { config =
+ { config, pkgs, ... }:
+ { services.postgresql.enable = true;
+ services.postgresql.package = pkgs.postgresql_9_6;
+ };
+ };
+</programlisting>
+ <para>
+ 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:
+ </para>
+ <programlisting language="bash">
+containers.database = {
+ privateNetwork = true;
+ hostAddress = &quot;192.168.100.10&quot;;
+ localAddress = &quot;192.168.100.11&quot;;
+};
+</programlisting>
+ <para>
+ 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
+ <literal>configuration.nix</literal> 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>