about summary refs log tree commit diff
path: root/nixos/doc/manual/administration
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 /nixos/doc/manual/administration
parent0ac3e57ac1caa8249b966acda47ae3c08e5d31f1 (diff)
nixos: nixos/doc/manual/administration/declarative-containers.xml to CommonMark
Diffstat (limited to 'nixos/doc/manual/administration')
-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
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>