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.
+
+