summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rwxr-xr-xshare/build-scripts/debconf19
-rwxr-xr-xshare/build-scripts/debconf.d/0003-debconf28
-rw-r--r--share/build-scripts/debconf.d/0003-debconf.templates4
-rw-r--r--share/man/compute-tools.7194
-rw-r--r--share/man/container-auto.1110
-rw-r--r--share/man/container-build-debconf.1202
-rw-r--r--share/man/container-build-debootstrap.1139
-rw-r--r--share/man/container-build.1160
-rw-r--r--share/man/container-console.1101
-rw-r--r--share/man/container-enter.1101
-rw-r--r--share/man/container-get-curl.1172
-rw-r--r--share/man/container-get.1148
-rw-r--r--share/man/container-info.1121
-rw-r--r--share/man/container-info.1.rst3
-rw-r--r--share/man/container-key.1137
-rw-r--r--share/man/container-limit.1145
-rw-r--r--share/man/container-list.1184
-rw-r--r--share/man/container-log.1128
-rw-r--r--share/man/container-move.1111
-rw-r--r--share/man/container-rebuild.1111
-rw-r--r--share/man/container-remove.1128
-rw-r--r--share/man/container-restart.1108
-rw-r--r--share/man/container-run.1106
-rw-r--r--share/man/container-shell.1171
-rw-r--r--share/man/container-start.1111
-rw-r--r--share/man/container-status.198
-rw-r--r--share/man/container-stop.1119
-rw-r--r--share/man/container-top.195
-rw-r--r--share/man/container-update.1138
-rw-r--r--share/man/container-version.192
-rw-r--r--share/man/container.1185
31 files changed, 3667 insertions, 2 deletions
diff --git a/share/build-scripts/debconf b/share/build-scripts/debconf
index 1689a79..168f985 100755
--- a/share/build-scripts/debconf
+++ b/share/build-scripts/debconf
@@ -880,6 +880,14 @@ EOF
fi
;;
+
+ stub)
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
+DHCP=no
+EOF
+
+ ;;
esac
if [ -n "${IPV4_POST_UP}" ]
@@ -950,6 +958,7 @@ EOF
cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
DHCP=no
IPv6AcceptRA=no
+LinkLocalAddressing=no
Address=${IPV6_ADDRESS}/${IPV6_NETMASK}
EOF
@@ -962,6 +971,16 @@ EOF
fi
;;
+
+ stub)
+
+cat >> "${DIRECTORY}/etc/systemd/network/eno${NUMBER}.network" << EOF
+DHCP=no
+IPv6AcceptRA=no
+LinkLocalAddressing=no
+EOF
+
+ ;;
esac
if [ -n "${IPV6_POST_UP}" ]
diff --git a/share/build-scripts/debconf.d/0003-debconf b/share/build-scripts/debconf.d/0003-debconf
index 2b0ea76..d428228 100755
--- a/share/build-scripts/debconf.d/0003-debconf
+++ b/share/build-scripts/debconf.d/0003-debconf
@@ -868,6 +868,20 @@ Network ()
db_input high container/network1/ipv4-post-down || true
db_go
;;
+
+ stub)
+ db_settitle container/title
+ db_input high container/network1/ipv4-comment || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv4-post-up || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv4-post-down || true
+ db_go
+ ;;
esac
db_settitle container/title
@@ -906,6 +920,20 @@ Network ()
db_input high container/network1/ipv6-post-down || true
db_go
;;
+
+ stub)
+ db_settitle container/title
+ db_input high container/network1/ipv6-comment || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-post-up || true
+ db_go
+
+ db_settitle container/title
+ db_input high container/network1/ipv6-post-down || true
+ db_go
+ ;;
esac
if [ "${NETWORK1_IPV4_METHOD}" = "static" ] || [ "${NETWORK1_IPV6_METHOD}" = "static" ]
diff --git a/share/build-scripts/debconf.d/0003-debconf.templates b/share/build-scripts/debconf.d/0003-debconf.templates
index 73952a8..098acd1 100644
--- a/share/build-scripts/debconf.d/0003-debconf.templates
+++ b/share/build-scripts/debconf.d/0003-debconf.templates
@@ -112,7 +112,7 @@ Description: Veth name
Template: container/network1/ipv4-method
Type: select
-Choices: dhcp, static, none
+Choices: dhcp, static, stub, none
Default:
Description: Ethernet Interface Method (IPv4)?
What method should be used to configure the ethernet interface?
@@ -173,7 +173,7 @@ Description: Ethernet post-down Command (IPv4)?
Template: container/network1/ipv6-method
Type: select
-Choices: static, none
+Choices: dhcp, static, stub, none
Default:
Description: Ethernet Interface Method (IPv6)?
What method should be used to configure the ethernet interface?
diff --git a/share/man/compute-tools.7 b/share/man/compute-tools.7
new file mode 100644
index 0000000..d6b62df
--- /dev/null
+++ b/share/man/compute-tools.7
@@ -0,0 +1,194 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH COMPUTE-TOOLS 7 compute-tools "Open Infrastructure"
+.SH NAME
+compute-tools \- Manage systemd-nspawn containers
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH DESCRIPTION
+.sp
+[A Linux container] is an operating\-system\-level virtualization environment for
+running multiple isolated Linux systems (containers) on a single Linux control
+host.
+.INDENT 0.0
+.INDENT 3.5
+\-\- Wikipedia (\fI\%https://en.wikipedia.org/wiki/LXC\fP)
+.UNINDENT
+.UNINDENT
+.sp
+\fBcompute\-tools\fP provides the system integration for managing containers using
+systemd\-nspawn(1).
+.SH DOWNLOAD
+.nf
+Upstream Releases:
+\fI\%https://get.open\-infrastructure.net/software/compute\-tools/upstream\fP
+.fi
+.sp
+.nf
+Upstream Sources:
+\fI\%https://git.open\-infrastructure.net/software/compute\-tools\fP
+.fi
+.sp
+.nf
+Debian Releases:
+\fI\%https://get.open\-infrastructure.net/software/compute\-tools/debian\fP
+.fi
+.sp
+.nf
+Debian Sources:
+\fI\%https://git.progress\-linux.org/users/daniel/debian/packages/open\-infrastructure\-compute\-tools\fP
+.fi
+.sp
+.SH INSTALLATION
+.SS Source
+.nf
+$ sudo apt install git make python3\-docutils dbus systemd\-container
+$ git clone \fI\%https://git.open\-infrastructure.net/software/compute\-tools\fP
+$ cd compute\-tools && sudo make install
+.fi
+.sp
+.SS Debian 9 (stretch) and newer
+.nf
+$ sudo apt install compute\-tools
+.fi
+.sp
+.SH DEVELOPMENT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+(\fI\%https://lists.open\-infrastructure.net/listinfo/software\fP).
+.sp
+Please base patches against the \(aqnext\(aq Git branch using common sense
+(\fI\%https://www.kernel.org/doc/Documentation/SubmittingPatches\fP).
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH KNOWN LIMITATIONS
+.sp
+This version of compute\-tools currently do not work with systemd\-networkd and
+depend on ifupdown.
+.sp
+Using overlay, the upper directory can not be an NFS mount due to limitations in
+Linux\(aq overlay filesystem
+(\fI\%https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/overlayfs.txt\fP).
+.SH USAGE
+.INDENT 0.0
+.TP
+.B Build a new container:
+sudo container build \-n NAME
+.TP
+.B Start a container:
+sudo container start \-n NAME
+.TP
+.B Stop a container:
+sudo container stop \-n NAME
+.TP
+.B Remove a container:
+sudo container remove \-n NAME
+.TP
+.B List container on the system:
+sudo container list
+.TP
+.B Show container version:
+container version
+.UNINDENT
+.sp
+See container(1) for a list of all container commands.
+.SH LINKS
+.nf
+* 2016\-02\-24: Systemd vs. Docker
+.in +2
+(\fI\%https://lwn.net/Articles/676831/\fP)
+.in -2
+.fi
+.sp
+.nf
+* 2015\-06\-10: Systemd and containers
+.in +2
+(\fI\%https://lwn.net/Articles/647634/\fP)
+.in -2
+.fi
+.sp
+.nf
+* 2014\-07\-07: Control groups
+.in +2
+(\fI\%https://lwn.net/Articles/604609/\fP)
+.in -2
+.fi
+.sp
+.nf
+* 2013\-11\-13: Systemd\-Nspawn is Chroot on Steroids [LinuxCon Europe]
+.in +2
+(\fI\%https://www.youtube.com/watch?v=s7LlUs5D9p4\fP)
+.in -2
+.fi
+.sp
+.nf
+* 2013\-11\-03: Creating containers with systemd\-nspawn
+.in +2
+(\fI\%https://lwn.net/Articles/572957/\fP)
+.in -2
+.fi
+.sp
+.nf
+* 2013\-02\-06: Systemd lightweight containers
+.in +2
+(\fI\%https://lwn.net/Articles/536033/\fP)
+.in -2
+.fi
+.sp
+.nf
+* 2013\-01\-04: Namespaces in operation
+.in +2
+(\fI\%https://lwn.net/Articles/531114/\fP)
+.in -2
+.fi
+.sp
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-auto.1 b/share/man/container-auto.1
new file mode 100644
index 0000000..e4755dd
--- /dev/null
+++ b/share/man/container-auto.1
@@ -0,0 +1,110 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-AUTO 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-auto \- Start/stop all container automatically at boot/shutdown
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer auto\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer auto\fP command starts or stops all container on the host system.
+.SH OPTIONS
+.sp
+The following \fBcontainer auto\fP options are available:
+.INDENT 0.0
+.TP
+.B \-f, \-\-force:
+Removing stray lock file if existing.
+.TP
+.B \-s, \-\-start:
+Start all container on the host system.
+.TP
+.B \-t, \-\-stop:
+Stop all container on the host system.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Start all container on the host system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container auto \-\-start
+.UNINDENT
+.UNINDENT
+.sp
+Stop all container on the host system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container auto \-\-stop
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-build-debconf.1 b/share/man/container-build-debconf.1
new file mode 100644
index 0000000..9db1c1f
--- /dev/null
+++ b/share/man/container-build-debconf.1
@@ -0,0 +1,202 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-BUILD-DEBCONF 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-build-debconf \- Build an advanced Debian based container with debconf
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer build \-s debconf\fP [\(aqOPTIONS\(aq]
+\fBcnt b \-s debconf\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.nf
+\fBcontainer build \-s debian\fP [\(aqOPTIONS\(aq]
+\fBcnt b \-s debian\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.nf
+\fBcontainer build \-s progress\-linux\fP [\(aqOPTIONS\(aq]
+\fBcnt b \-s progress\-linux\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The debconf container build script uses debconf(1) to automatically build a
+Debian based container.
+.SS Scope
+.sp
+Note that this container build script can do a few things more than just
+automatically debootstrap based on a preseed file. It also allows you to set a
+root password, configure the network, install certain packages and execute
+hooks.
+.sp
+But: this is \fInot\fP a replacement for a configuration management system (like
+ansible, puppet, etc.). The intenion of this script is to build the initial
+container to that extend that a configuration management system can take over.
+.sp
+As an analogy, think of debian\-installer: d\-i sets up your system to make it
+ready to boot and connect to the network. Everything after that is out of scope.
+Same goes for this script.
+.SS Functions
+.sp
+This script performs the following configuration on top of a Debian based
+system:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.IP \(bu 2
+network
+.IP \(bu 2
+root password
+.IP \(bu 2
+apt repositories
+.IP \(bu 2
+\&...
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.SS Modes
+.sp
+This container build script can be used under two different names: debian and
+progress\-linux.
+.sp
+Alternative, calling it under the debconf name is equal to the debian mode.
+.SS Preseeding
+.sp
+Hierarchy of Preseed Files:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.IP \(bu 2
+The debconf script can be fully preseeded. Such preseed files can include
+one or more preseed files themselfs (currently, only one layer of includes
+is supported, no nested or recursive includes).
+.IP \(bu 2
+The general rule of \(aqthe later preseed file overwrites the earlier\(aq applies.
+The debconf script reads the main preseed file (specified either on command
+line or by debconf selection/input dialog) after any included preseed files
+in there.
+.IP \(bu 2
+That means that debconf values after the include statement in the main
+preseed file can overwrite any values specified in the included preseed
+files.
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.SH OPTIONS
+.sp
+The following script options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.TP
+.B \-p, \-\-preseed\-file=\(aqFILE\(aq:
+Specify the preseed file.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Build a Debian based container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build \-s debian \-n debian.example.net
+.UNINDENT
+.UNINDENT
+.sp
+Build a Progress Linux container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build \-s progress\-linux \-n progress.example.net
+.UNINDENT
+.UNINDENT
+.SH FILES
+.sp
+The following files are used:
+.INDENT 0.0
+.TP
+.B /etc/compute\-tools/config:
+Container configuration files.
+.TP
+.B /usr/share/compute\-tools/build\-scripts:
+Container build scripts.
+.TP
+.B /usr/share/doc/compute\-tools:
+Container documentation.
+.TP
+.B /var/lib/machines:
+Container directory.
+.TP
+.B /var/cache/container:
+Container cache directory.
+.TP
+.B /tmp/compute\-tools:
+Container temporary directory.
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-build-debootstrap.1 b/share/man/container-build-debootstrap.1
new file mode 100644
index 0000000..2501d7a
--- /dev/null
+++ b/share/man/container-build-debootstrap.1
@@ -0,0 +1,139 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-BUILD-DEBOOTSTRAP 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-build-debootstrap \- Build a basic Debian based container with debootstrap or mmdebstrap
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer build \-s debootstrap\fP [\(aqOPTIONS\(aq]
+\fBcnt b \-s debootstrap\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.nf
+\fBcontainer build \-s mmdebstrap\fP [\(aqOPTIONS\(aq]
+\fBcnt b \-s mmdebstrap\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The debootstrap container build script uses debootstrap(8) or mmdebstrap(1)
+to build a Debian based container.
+.sp
+This script builds a pure Debian system with three modificiations:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.IP \(bu 2
+apt cache of packages downloaded during debootstrap is cleaned
+.IP \(bu 2
+hostname is set (container name) in /etc/hostname
+.IP \(bu 2
+root password is set (user specified or 16 random characters)
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.SH OPTIONS
+.sp
+The following script options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.TP
+.B \-a, \-\-architecture=\(aqARCHITECTURE\(aq:
+Specify the Debian architecture, defaults to the host systems architecture.
+.TP
+.B \-d, \-\-distribution=\(aqDISTRIBUTION\(aq:
+Specify the Debian distribution, defaults to \(aqbullseye\(aq.
+.TP
+.B \-m, \-\-mirror=\(aqMIRROR\(aq:
+Specify the Debian mirror, defaults to \(aq\fI\%https://deb.debian.org/debian\fP\(aq.
+.TP
+.B \-p, \-\-root\-password=\(aqPASSWORD\(aq:
+Specify the root password, defaults to a random 16 character password.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Build a Debian 11 (bullseye) based container with same architecture as the host
+system using debootstrap:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build \-s debootstrap \-n bullseye.example.net
+.UNINDENT
+.UNINDENT
+.sp
+Build a Debian 11 (bullseye) based container with different architecture as the
+host system using mmdebstrap:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build \-s mmdebstrap \-n bullseye\-i386.example.net \-\- \-a i386
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-build.1 b/share/man/container-build.1
new file mode 100644
index 0000000..10aff3f
--- /dev/null
+++ b/share/man/container-build.1
@@ -0,0 +1,160 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-BUILD 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-build \- Build a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer build\fP [\(aqOPTIONS\(aq]
+\fBcnt b\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer build\fP command builds a container based on a script.
+.SS Scripts
+.sp
+The following build scripts are available:
+.INDENT 0.0
+.TP
+.B debootstrap:
+Basic script to build Debian based container, see
+container\-build\-debootstrap(1).
+.TP
+.B debconf:
+Advanced script to automatically build Debian based container, see
+container\-build\-debconf(1).
+.TP
+.B default:
+Symlink (if existing) to a build script which is used if no script was
+specified. On Debian based system this can be managed through
+update\-alternatives(1), i.e. \(aqsudo update\-alternatives \-\-config
+container_build\-script\(aq.
+.UNINDENT
+.SH OPTIONS
+.sp
+The following \fBcontainer build\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.TP
+.B \-c, \-\-capability=\(aqCAPABILITY\(aq:
+Specify capabilities to grant, see capabilities(7).
+.TP
+.B \-d, \-\-drop\-capability=\(aqDROP_CAPABILITY\(aq:
+Specify capabilities to drop, see capabilities(7).
+.TP
+.B \-s, \-\-script=\(aqSCRIPT\(aq:
+Specify container build script, defaults to \(aqdebootstrap\(aq.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.TP
+.B \-b, \-\-bind=\(aqDIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]\(aq:
+Specify container read\-write bind mounts, see systemd\-nspawn(1) \-\-bind option.
+.TP
+.B \-\-bind\-ro=\(aqDIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]\(aq:
+Specify container read\-only bind mounts, see systemd\-nspawn(1) \-\-bind\-ro
+option.
+.TP
+.B \-\-cnt\-overlay=\(aqDIRECTORY_LOWER:DIRECTORY_UPPER:DIRECTORY_WORK:DIRECTORY_MERGED[;DIRECTORY_UPPER:DIRECTORY_LOWER:DIRECTORY_WORK:DIRECTORY_MERGED]\(aq:
+Specify container overlay mounts, see Documentation/filesystems/overlayfs.txt.
+.TP
+.B \-\-cnt.overlay\-options=\(aqOPTION1,OPTION2[;OPTION3,OPTION4]\(aq:
+Specify container overlay mount options, see
+Documentation/filesystems/overlayfs.txt.
+.TP
+.B \-\-cnt.start=\(aqOPTION1[,OPTION2,...]\(aq:
+Specify container start options, see container\-start(1).
+.UNINDENT
+.SH EXAMPLES
+.sp
+Build example.net container using debootstrap script:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build \-n example.net \-s debootstrap
+.UNINDENT
+.UNINDENT
+.sp
+Build example.net container using debconf script:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build \-n example.net \-s debconf
+.UNINDENT
+.UNINDENT
+.sp
+Build example.net container with the default build script and start it:
+.INDENT 0.0
+.INDENT 3.5
+sudo container build,start \-n example.net
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-console.1 b/share/man/container-console.1
new file mode 100644
index 0000000..7959868
--- /dev/null
+++ b/share/man/container-console.1
@@ -0,0 +1,101 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-CONSOLE 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-console \- Attach a console to a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer console\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer console\fP command attaches a console to a container.
+.sp
+While \(aqcontainer enter\(aq bypasses the login prompt and drops to a root shell, the
+\(aqcontainer console\(aq command shows a full login prompt where any valid user and
+password combination can be used.
+.SH OPTIONS
+.sp
+The following \fBcontainer console\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Attach console to example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container console \-n example.net
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-enter.1 b/share/man/container-enter.1
new file mode 100644
index 0000000..8552a9a
--- /dev/null
+++ b/share/man/container-enter.1
@@ -0,0 +1,101 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-ENTER 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-enter \- Enter a container namespace
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer enter\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer enter\fP command enters a container namespace.
+.sp
+While \(aqcontainer console\(aq shows a full login prompt where any valid user and
+password combination can be used, the \(aqcontainer enter\(aq command bypasses this
+and drops to a root shell.
+.SH OPTIONS
+.sp
+The following \fBcontainer enter\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Enter to example.net container namespace:
+.INDENT 0.0
+.INDENT 3.5
+sudo container enter \-n example.net
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-get-curl.1 b/share/man/container-get-curl.1
new file mode 100644
index 0000000..d9a3b1e
--- /dev/null
+++ b/share/man/container-get-curl.1
@@ -0,0 +1,172 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-GET-CURL 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-get-curl \- Download a Debian based container by downloading a tarball over the network
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer get \-s curl\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The curl container download script uses curl(1) to download a tarball over the
+network to create a Debian based container.
+.sp
+Depending on the tarball this script otherwise creates a pure Debian system
+with three modificiations:
+.INDENT 0.0
+.INDENT 3.5
+.INDENT 0.0
+.IP \(bu 2
+hostname is set (container name) in /etc/hostname
+.IP \(bu 2
+systemd machine\-id is generated in /etc/machine\-id
+.IP \(bu 2
+root password is set (user specified or 16 random characters)
+.UNINDENT
+.UNINDENT
+.UNINDENT
+.SS Container images
+.sp
+compute\-tools will download tarballs from a server expecting that the images are
+tarballs with either gzip, lzip, xz, or no compression. See container\-images.sh
+as an example on how to create your own container images.
+.SH OPTIONS
+.sp
+The following script options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.TP
+.B \-a, \-\-architecture=\(aqARCHITECTURE\(aq:
+Specify container architecture.
+.TP
+.B \-\-clean:
+Remove container tarball after successful download.
+.TP
+.B \-p, \-\-root\-password=\(aqPASSWORD\(aq:
+Specify the root password, defaults to a random 16 character password.
+.TP
+.B \-\-server=\(aqSERVER\(aq:
+Specify the image server to download from, defaults to
+\(aq\fI\%https://get.open\-infrastructure.net/system/container/debian\fP\(aq.
+.TP
+.B \-\-setup=\(aqSETUP\(aq:
+Specify the setup image name to download, defaults to the value specified
+through \-\-system using the setup.tar.${COMPRESSION} suffix (where
+${COMPRESSION} is either lz, xz, or gz depending on compressor availability on
+the host system).
+.TP
+.B \-\-system=\(aqSYSTEM\(aq:
+Specify the system image name to download, defaults to
+debian\-bullseye\-current_${ARCHITECTURE}.system.tar.${COMPRESSION} (where
+${ARCHITECTURE} is the host systems architecture and ${COMPRESSION} either
+lz, xz, or gz depending on compressor availability on the host system).
+.UNINDENT
+.SH EXAMPLES
+.sp
+Download a Debian 11 (bullseye) based container with same architecture as the host
+system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container get \-s curl \-n bullseye.example.net
+.UNINDENT
+.UNINDENT
+.sp
+Download a Debian 11 (bullseye) based container with different architecture as the
+host system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container get \-s curl \-n bullseye\-i386.example.net \-\- \-\-system debian\-bullseye\-current_i386.system.tar.xz
+.UNINDENT
+.UNINDENT
+.SH FILES
+.sp
+The following files are used:
+.INDENT 0.0
+.TP
+.B /etc/compute\-tools/config:
+Container configuration files.
+.TP
+.B /usr/share/compute\-tools/get\-scripts:
+Container download scripts.
+.TP
+.B /usr/share/doc/compute\-tools:
+Container documentation.
+.TP
+.B /var/lib/machines:
+Container directory.
+.TP
+.B /var/cache/container:
+Container cache directory.
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-get.1 b/share/man/container-get.1
new file mode 100644
index 0000000..cbfd336
--- /dev/null
+++ b/share/man/container-get.1
@@ -0,0 +1,148 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-GET 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-get \- Download a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer get\fP [\(aqOPTIONS\(aq]
+\fBcnt g\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer get\fP command downloads a container based on a script.
+.SS Scripts
+.sp
+The following download scripts are available:
+.INDENT 0.0
+.TP
+.B curl:
+Basic script to build Debian based container, see container\-create\-curl(1).
+.TP
+.B default:
+Symlink (if existing) to a download script which is used if no script was
+specified. On Debian based system this can be managed through
+update\-alternatives(1), i.e. \(aqsudo update\-alternatives \-\-config
+container_get\-script\(aq.
+.UNINDENT
+.SH OPTIONS
+.sp
+The following \fBcontainer get\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.TP
+.B \-c, \-\-capability=\(aqCAPABILITY\(aq:
+Specify capabilities to grant, see capabilities(7).
+.TP
+.B \-d, \-\-drop\-capability=\(aqDROP_CAPABILITY\(aq:
+Specify capabilities to drop, see capabilities(7).
+.TP
+.B \-s, \-\-script=\(aqSCRIPT\(aq:
+Specify container build script, defaults to \(aqdebootstrap\(aq.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.TP
+.B \-b, \-\-bind=\(aqDIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]\(aq:
+Specify container read\-write bind mounts, see systemd\-nspawn(1) \-\-bind option.
+.TP
+.B \-\-bind\-ro=\(aqDIRECTORY:DIRECTORY[:OPTIONS][;DIRECTORY:DIRECTORY[:OPTIONS]]\(aq:
+Specify container read\-only bind mounts, see systemd\-nspawn(1) \-\-bind\-ro
+option.
+.TP
+.B \-\-cnt\-overlay=\(aqDIRECTORY_LOWER:DIRECTORY_UPPER:DIRECTORY_WORK:DIRECTORY_MERGED[;DIRECTORY_UPPER:DIRECTORY_LOWER:DIRECTORY_WORK:DIRECTORY_MERGED]\(aq:
+Specify container overlay mounts, see Documentation/filesystems/overlayfs.txt.
+.TP
+.B \-\-cnt.overlay\-options=\(aqOPTION1,OPTION2[;OPTION3,OPTION4]\(aq:
+Specify container overlay mount options, see
+Documentation/filesystems/overlayfs.txt.
+.TP
+.B \-\-cnt.start=\(aqOPTION1[,OPTION2,...]\(aq:
+Specify container start options, see container\-start(1).
+.UNINDENT
+.SH EXAMPLES
+.sp
+Create example.net container using curl script:
+.INDENT 0.0
+.INDENT 3.5
+sudo container get \-n example.net \-s curl
+.UNINDENT
+.UNINDENT
+.sp
+Create example.net container with the default download script and start it:
+.INDENT 0.0
+.INDENT 3.5
+sudo container get,start \-n example.net
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-info.1 b/share/man/container-info.1
new file mode 100644
index 0000000..becbe0e
--- /dev/null
+++ b/share/man/container-info.1
@@ -0,0 +1,121 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-INFO 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-info \- Show specific information of a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer info\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer info\fP command shows specific information of a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer info\fP options are available, defaults to \(aq\-\-status
+\-\-os \-\-ip\(aq:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will start all stopped container.
+.TP
+.B \-\-status:
+Show container status (started|stopped|other).
+.TP
+.B \-\-os:
+Show container operating system (FIXME: Debian only).
+.TP
+.B \-\-ip:
+Show container IP address.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Show example.net container status:
+.INDENT 0.0
+.INDENT 3.5
+sudo container info \-n example.net \-\-status
+.UNINDENT
+.UNINDENT
+.sp
+Show example.net container operating system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container info \-n example.net \-\-os
+.UNINDENT
+.UNINDENT
+.sp
+Show example.net container IP address:
+.INDENT 0.0
+.INDENT 3.5
+sudo container info \-n example.net \-\-ip
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-info.1.rst b/share/man/container-info.1.rst
index 608f999..99ccb55 100644
--- a/share/man/container-info.1.rst
+++ b/share/man/container-info.1.rst
@@ -44,6 +44,9 @@ Options
The following **container info** options are available, defaults to '--status
--os --ip':
+-n, --name='NAME':
+ Specify container name. Specifying 'ALL' will start all stopped container.
+
--status:
Show container status (started|stopped|other).
diff --git a/share/man/container-key.1 b/share/man/container-key.1
new file mode 100644
index 0000000..4000536
--- /dev/null
+++ b/share/man/container-key.1
@@ -0,0 +1,137 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-KEY 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-key \- Manage GnuPG keyring for container operations
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer key\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer key\fP command manages the GnuPG keyring for container
+operations.
+.SH OPTIONS
+.sp
+The following \fBcontainer key\fP options are available:
+.INDENT 0.0
+.TP
+.B \-a, \-\-add=\(aqKEY_FILE|KEY_ID\(aq:
+Add a key to the keyring.
+.TP
+.B \-l, \-\-list\(aq:
+List keys in the keyring.
+.TP
+.B \-r, \-\-remove=\(aqKEY\(aq:
+Remove a key from the keyring.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Add a key to the keyring manually:
+.INDENT 0.0
+.INDENT 3.5
+gpg \-\-keyserver hkps://keys.openpgp.org \-\-recv 0x55CF1BF986ABB9C7
+gpg \-\-armor \-\-export 0x55CF1BF986ABB9C7 | sudo container key \-\-add \-
+.UNINDENT
+.UNINDENT
+.sp
+Assisted adding of the same key:
+.INDENT 0.0
+.INDENT 3.5
+sudo container key \-\-add 0x55CF1BF986ABB9C7
+.UNINDENT
+.UNINDENT
+.sp
+Remove a key from the keyring:
+.INDENT 0.0
+.INDENT 3.5
+sudo container key \-\-remove 0x55CF1BF986ABB9C7
+.UNINDENT
+.UNINDENT
+.sp
+List keys in the keyring:
+.INDENT 0.0
+.INDENT 3.5
+sudo container key \-\-list
+.UNINDENT
+.UNINDENT
+.SH FILES
+.sp
+The following files are used:
+.INDENT 0.0
+.TP
+.B /etc/compute\-tools/keys:
+Active container keyring.
+.TP
+.B /usr/share/compute\-tools/keys:
+Inactive container keyring library.
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-limit.1 b/share/man/container-limit.1
new file mode 100644
index 0000000..acfbfde
--- /dev/null
+++ b/share/man/container-limit.1
@@ -0,0 +1,145 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-LIMIT 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-limit \- Limit resources of a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer limit\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer limit\fP command limits resources available to a container at
+runtime.
+.SH OPTIONS
+.sp
+The following \fBcontainer limit\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.TP
+.B \-\-blockio\-device\-weight=\(aqDEVICE WEIGHT\(aq:
+Specify device specific blockio weight, see systemd.resource\-control(5).
+.TP
+.B \-\-blockio\-read\-bandwidth=\(aqDEVICE BYTES\(aq:
+Specify device specific blockio read bandwidth, see
+systemd.resource\-control(5).
+.TP
+.B \-b, \-\-blockio\-weight=\(aqWEIGHT\(aq:
+Specify general blockio weight, see systemd.resource\-control(5).
+.TP
+.B \-\-blockio\-write\-bandwidth=\(aqDEVICE BYTES\(aq:
+Specify device specific blockio write bandwidth, see
+systemd.resource\-control(5).
+.TP
+.B \-c, \-\-cpu\-quota=\(aqQUOTA\(aq:
+Specify CPU quota, see systemd.resource\-control(5).
+.TP
+.B \-\-cpu\-shares=\(aqSHARES\(aq:
+Specify CPU shares, see systemd.resource\-control(5).
+.TP
+.B \-m, \-\-memory\-limit=\(aqBYTES\(aq:
+Specify memory limit, see systemd.resource\-control(5).
+.TP
+.B \-t, \-\-tasks\-max=\(aqNUMBER\(aq:
+Specify tasks max, see systemd.resource\-control(5).
+.UNINDENT
+.SH EXAMPLES
+.sp
+Set blockio weight for the example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container limit \-n example.net \-\-blockio\-weight 100
+.UNINDENT
+.UNINDENT
+.sp
+Set CPU quota for the example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container limit \-n example.net \-\-cpu\-quota 10%
+.UNINDENT
+.UNINDENT
+.sp
+Set memory limit for the example.net container to 1GB:
+.INDENT 0.0
+.INDENT 3.5
+sudo container limit \-n example.net \-\-memory\-limit 1G
+.UNINDENT
+.UNINDENT
+.sp
+Set tasks max for the example.net container to 100:
+.INDENT 0.0
+.INDENT 3.5
+sudo container limit \-n example.net \-\-tasks\-max 100
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-list.1 b/share/man/container-list.1
new file mode 100644
index 0000000..751ab88
--- /dev/null
+++ b/share/man/container-list.1
@@ -0,0 +1,184 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-LIST 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-list \- List container on the system
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer list\fP [\(aqOPTIONS\(aq]
+\fBcnt ls\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer list\fP command lists container on the system.
+.SH OPTIONS
+.sp
+The following \fBcontainer list\fP options are available, defaults to \(aq\-\-started
+\-\-stopped\(aq:
+.INDENT 0.0
+.TP
+.B \-a, \-\-all:
+List all available container (started, stopped, and other).
+.TP
+.B \-\-csv\-separator=\(aqSEPARATOR\(aq:
+Specify custom CSV separator, defaults to \(aq,\(aq.
+.TP
+.B \-f, \-\-format=\(aqFORMAT\(aq:
+Use format to list container. Currently available formats are \(aqcli\(aq (default),
+\(aqcsv\(aq, \(aqjson\(aq, \(aqnwdiag\(aq, \(aqshell\(aq, \(aqsh\(aq, \(aqyaml\(aq, or \(aqxml\(aq.
+.TP
+.B \-h, \-\-host=\(aqHOSTNAME\(aq:
+List only container that are enabled for automatic start on the specified
+hostname. Defaults to list containers of the local system only. Using \(aqall\(aq
+shows all container regardless of any automatic start configuration.
+.TP
+.B \-\-nwdiag\-color=\(aqCOLOR\(aq:
+Specify custom nwdiag color for the host box, defaults to \(aq#3465a4\(aq.
+.TP
+.B \-\-nwdiag\-label=\(aqLABEL\(aq:
+Specify custom nwdiag label for the diagram, defaults to empty.
+.TP
+.B \-o, \-\-other:
+List only container that are not enable for automatic start on the current
+system.
+.TP
+.B \-s, \-\-started:
+List only started container.
+.TP
+.B \-t, \-\-stopped:
+List only stopped container.
+.UNINDENT
+.SH EXAMPLES
+.sp
+List all started and stopped containers of the local system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list
+.UNINDENT
+.UNINDENT
+.sp
+List all started and other containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-s \-o
+.UNINDENT
+.UNINDENT
+.sp
+Create a CSV export of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f csv
+.UNINDENT
+.UNINDENT
+.sp
+Create a JSON export of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f json
+.UNINDENT
+.UNINDENT
+.sp
+Create a nwdiag export of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f nwdiag
+.UNINDENT
+.UNINDENT
+.sp
+Create a SVG image via nwdiag of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f nwdiag | nwdiag \-T svg \-o cnt\-list.svg \-
+.UNINDENT
+.UNINDENT
+.sp
+Create a shell export of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f shell
+sudo container list \-f sh
+.UNINDENT
+.UNINDENT
+.sp
+Create a YAML export of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f yaml
+.UNINDENT
+.UNINDENT
+.sp
+Create a XML export of all started and stopped containers:
+.INDENT 0.0
+.INDENT 3.5
+sudo container list \-f xml
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-log.1 b/share/man/container-log.1
new file mode 100644
index 0000000..81129f9
--- /dev/null
+++ b/share/man/container-log.1
@@ -0,0 +1,128 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-LOG 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-log \- Show container log
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer log\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer log\fP command shows the container log.
+.SH OPTIONS
+.sp
+The following \fBcontainer log\fP options are available:
+.INDENT 0.0
+.TP
+.B \-d, \-\-date:
+Show only log entries of the specified date as \(aqYYYY\-MM\-DD\(aq or a date range like \(aqtoday\-7\(aq.
+.TP
+.B \-n, \-\-name:
+Show only log entries for the specified container.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Show all log entries:
+.INDENT 0.0
+.INDENT 3.5
+sudo container log
+.UNINDENT
+.UNINDENT
+.sp
+Show only log entries of today:
+.INDENT 0.0
+.INDENT 3.5
+sudo container log \-d today
+.UNINDENT
+.UNINDENT
+.sp
+Show only log entries of yesterday:
+.INDENT 0.0
+.INDENT 3.5
+sudo container log \-d yesterday
+.UNINDENT
+.UNINDENT
+.sp
+Show all log entries of the example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container log \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Show only log entries of the example.net container of the last 30 days:
+.INDENT 0.0
+.INDENT 3.5
+sudo container log \-d today\-30 \-n example.net
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-move.1 b/share/man/container-move.1
new file mode 100644
index 0000000..9df6180
--- /dev/null
+++ b/share/man/container-move.1
@@ -0,0 +1,111 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-MOVE 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-move \- Rename a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer move\fP [\(aqOPTIONS\(aq]
+\fBcnt mv\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer move\fP commands renames a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer move\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-new=\(aqNAME\(aq:
+Specify new container name.
+.TP
+.B \-f, \-\-force:
+Do not prompt before moving.
+.TP
+.B \-o, \-\-old:
+Specify old container name.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Rename example.net container to example.org:
+.INDENT 0.0
+.INDENT 3.5
+sudo container move \-n example.org \-o example.net
+.UNINDENT
+.UNINDENT
+.sp
+Rename example.net container to example.org without prompt:
+.INDENT 0.0
+.INDENT 3.5
+sudo container move \-n example.org \-o example.net \-f
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-rebuild.1 b/share/man/container-rebuild.1
new file mode 100644
index 0000000..8b671ae
--- /dev/null
+++ b/share/man/container-rebuild.1
@@ -0,0 +1,111 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-REBUILD 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-rebuild \- Restart a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer rebuild\fP [\(aqOPTIONS\(aq]
+\fBcnt rb\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer rebuild\fP command rebuilds a container by stopping, building, starting an existing container.
+.SH OPTIONS
+.sp
+The following \fBcontainer rebuild\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will rebuild all started container.
+.TP
+.B \-f, \-\-force:
+Do not fail if container is running.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Rebuild example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container rebuild \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Restart all container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container rebuild \-n ALL
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-remove.1 b/share/man/container-remove.1
new file mode 100644
index 0000000..a3b5f71
--- /dev/null
+++ b/share/man/container-remove.1
@@ -0,0 +1,128 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-REMOVE 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-remove \- Remove a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer remove\fP [\(aqOPTIONS\(aq]
+\fBcnt rm\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer remove\fP command removes a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer remove\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will remove all stopped container.
+.TP
+.B \-\-allow\-stop:
+Stop container prior removal.
+.TP
+.B \-f, \-\-force:
+Do not prompt before removal.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Remove example.net container from the system:
+.INDENT 0.0
+.INDENT 3.5
+sudo container remove \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Remove example.net container from the system without prompt:
+.INDENT 0.0
+.INDENT 3.5
+sudo container remove \-n example.net \-f
+.UNINDENT
+.UNINDENT
+.sp
+Remove a running container from the system, without prompt:
+.INDENT 0.0
+.INDENT 3.5
+sudo container remove \-n example.net \-f \-\-allow\-stop
+.UNINDENT
+.UNINDENT
+.sp
+Remove all container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container remove \-n ALL
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-restart.1 b/share/man/container-restart.1
new file mode 100644
index 0000000..368cc74
--- /dev/null
+++ b/share/man/container-restart.1
@@ -0,0 +1,108 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-RESTART 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-restart \- Restart a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer restart\fP [\(aqOPTIONS\(aq]
+\fBcnt rs\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer restart\fP command restarts a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer restart\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will restart all started container.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Restart example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container restart \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Restart all container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container restart \-n ALL
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-run.1 b/share/man/container-run.1
new file mode 100644
index 0000000..0469b2d
--- /dev/null
+++ b/share/man/container-run.1
@@ -0,0 +1,106 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-RUN 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-run \- Execute commands in a container namespace
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer run\fP [\(aqOPTIONS\(aq] \-\- \(aqCOMMAND\(aq|"COMMANDS"
+\fBcnt r\fP [\(aqOPTIONS\(aq] \-\- \(aqCOMMAND\(aq|"COMMANDS"
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer run\fP command executes arbitrary commands as root in a container
+namespace.
+.SH OPTIONS
+.sp
+The following \fBcontainer run\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will start all stopped container.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Run \(aqhostname\(aq in example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container run \-n example.net \-\- hostname
+.UNINDENT
+.UNINDENT
+.sp
+Create and delete a file in example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container run \-n example.net \-\- \(aqtouch /tmp/foo && rm \-f /tmp/foo\(aq
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-shell.1 b/share/man/container-shell.1
new file mode 100644
index 0000000..926d837
--- /dev/null
+++ b/share/man/container-shell.1
@@ -0,0 +1,171 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-SHELL 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-shell \- Manage systemd-nspawn containers (shell)
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer\-shell\fP [\(aqOPTIONS\(aq]
+\fBcntsh\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+compute\-tools provides the system integration for managing containers using
+systemd\-nspawn.
+.SS Usage
+.sp
+Although the \fBcontainer\-shell\fP can be started from a running system like any
+other program, the main intend is to use the \fBcontainer\-shell\fP via SSH. That
+way otherwise unprivileged users have possibility to manage containers without
+needing a regular shell login on the container server.
+.sp
+For usage over SSH a unprivileged user should be created:
+.nf
+
+.in +2
+sudo adduser \-\-gecos "compute\-tools,,," \e
+.in +2
+\-\-home /var/lib/open\-infrastructure/container\-shell \e
+\-\-shell /usr/bin/container\-shell
+.in -2
+.in -2
+.fi
+.sp
+.sp
+The container\-shell can then be allowed for specific SSH keys via
+/var/lib/compute\-tools/container\-shell/.ssh/authorized_keys like so:
+.nf
+
+.in +2
+command="/usr/bin/container\-shell",no\-port\-forwarding,no\-X11\-forwarding,\e
+.in +2
+no\-agent\-forwarding,no\-pty ssh\-ed25519 [...]
+.in -2
+.in -2
+.fi
+.sp
+.SS Restricted shell
+.sp
+The container\-shell by default grants any user that has access to it to use all available container commands.
+.sp
+Through two corresponding environment variables users can be allowed or disallowed to use specific container commands.
+In connection with SSH this makes it possible to grant certain SSH keys (and by that, users) privileges to operate container
+servers without having to give them root access, a login shell at all and prevents them from doing things they are not trusted to do.
+.SS Example (blacklisting)
+.sp
+In order to allow all commands except for removing and stopping containers, the
+following variable can be used:
+.nf
+
+.in +2
+command="CONTAINER_COMMANDS_DISABLE=\(aqremove stop\(aq \e
+.in +2
+/usr/bin/container\-shell",no\-port\-forwarding,no\-X11\-forwarding,\e
+no\-agent\-forwarding,no\-pty ssh\-ed25519 [...]
+.in -2
+.in -2
+.fi
+.sp
+.SS Example (whitelisting)
+.sp
+The other way around works too. To disallow all commands except for listing
+containers and showing the compute\-tools version, the following variable can be
+used:
+.nf
+
+.in +2
+command="CONTAINER_COMMANDS_ENABLE=\(aqlist version\(aq \e
+.in +2
+/usr/bin/container\-shell",no\-port\-forwarding,no\-X11\-forwarding,\e
+no\-agent\-forwarding,no\-pty ssh\-ed25519 [...]
+.in -2
+.in -2
+.fi
+.sp
+.SH COMMANDS
+.sp
+All container commands are available, see container(1). Additionally, the
+following commands are specific to container\-shell:
+.INDENT 0.0
+.TP
+.B about:
+Shows introduction (manpage).
+.TP
+.B help:
+Shows available commands within the container\-shell.
+.TP
+.B help COMMAND:
+Shows help (manpage) for a specific container command.
+.TP
+.B logout, exit:
+Exits container\-shell.
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-start.1 b/share/man/container-start.1
new file mode 100644
index 0000000..95ffae3
--- /dev/null
+++ b/share/man/container-start.1
@@ -0,0 +1,111 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-START 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-start \- Start a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer start\fP [\(aqOPTIONS\(aq]
+\fBcnt s\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer start\fP command starts a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer start\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will start all stopped container.
+.TP
+.B \-f, \-\-force\(aq:
+Removing stray lock file if existing.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Start example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container start \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Start all container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container start \-n ALL
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-status.1 b/share/man/container-status.1
new file mode 100644
index 0000000..8a24bb0
--- /dev/null
+++ b/share/man/container-status.1
@@ -0,0 +1,98 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-STATUS 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-status \- Show container status
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer status\fP [\(aqOPTIONS\(aq]
+\fBcnt st\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer status\fP command displays the status of a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer status\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.UNINDENT
+.SH EXAMPLES
+.sp
+show status of example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container status \-n example.net
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-stop.1 b/share/man/container-stop.1
new file mode 100644
index 0000000..60554ab
--- /dev/null
+++ b/share/man/container-stop.1
@@ -0,0 +1,119 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-STOP 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-stop \- Stop a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer stop\fP [\(aqOPTIONS\(aq]
+\fBcnt t\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer stop\fP command stops a container by running the proper shutdown
+sequence.
+.SH OPTIONS
+.sp
+The following \fBcontainer stop\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will stop all started container.
+.TP
+.B \-f, \-\-force:
+Instead of running the proper shutdown sequence, terminate all processes of the container imediatly.
+.TP
+.B \-v, \-\-verbose:
+Explain what is being done.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Shutdown example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container stop \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Immediately stop example.net container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container stop \-n example.net \-f
+.UNINDENT
+.UNINDENT
+.sp
+Stop all container:
+.INDENT 0.0
+.INDENT 3.5
+sudo container stop \-n ALL
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-top.1 b/share/man/container-top.1
new file mode 100644
index 0000000..6ddcea8
--- /dev/null
+++ b/share/man/container-top.1
@@ -0,0 +1,95 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-TOP 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-top \- Dynamic list container on the system
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer top\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer top\fP command dynamically lists container on the system.
+.SH OPTIONS
+.sp
+The following \fBcontainer top\fP options are available, defaults to \(aq\-\-delay 1\(aq:
+.INDENT 0.0
+.TP
+.B \-d, \-\-delay=\(aqSECONDS[.TENTHS]\(aq:
+Specifies the delay between screen updates, defaults to \(aq1\(aq.
+.UNINDENT
+.SH EXAMPLES
+.INDENT 0.0
+.TP
+.B Dynamically list containers of the local system:
+sudo container top
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-update.1 b/share/man/container-update.1
new file mode 100644
index 0000000..9934cc3
--- /dev/null
+++ b/share/man/container-update.1
@@ -0,0 +1,138 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-UPDATE 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-update \- Update the packages installed in a container
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer update\fP [\(aqOPTIONS\(aq]
+\fBcnt u\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer update\fP command updates packages installed in a container.
+.SH OPTIONS
+.sp
+The following \fBcontainer update\fP options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name. Specifying \(aqALL\(aq will start all stopped container.
+.TP
+.B \-f, \-\-full\-upgrade:
+Runs an additional \(aqapt full\-upgrade\(aq after \(aqapt upgrade\(aq.
+.TP
+.B \-i, \-\-interactive:
+Prompt before every container update.
+.TP
+.B \-r, \-\-autoremove:
+Runs an additional \(aqapt autoremove\(aq after \(aqapt upgrade\(aq.
+.TP
+.B \-p, \-\-purge:
+Passing \(aq\-\-purge\(aq to \(aqapt autoremove\(aq.
+.TP
+.B \-y|\-\-yes:
+Passing \(aqyes\(aq to all questions asked by the package manager.
+.UNINDENT
+.SH EXAMPLES
+.sp
+Update example.net container (apt update && apt upgrade):
+.INDENT 0.0
+.INDENT 3.5
+sudo container update \-n example.net
+.UNINDENT
+.UNINDENT
+.sp
+Update example.net container without asking questions (apt update && apt \-\-yes
+upgrade):
+.INDENT 0.0
+.INDENT 3.5
+sudo container update \-n example.net \-y
+.UNINDENT
+.UNINDENT
+.sp
+Full update of example.net container without asking questions (apt update &&
+apt \-\-yes upgrade && apt \-\-yes full\-upgrade):
+.INDENT 0.0
+.INDENT 3.5
+sudo container update \-n example.net \-f \-y
+.UNINDENT
+.UNINDENT
+.sp
+Full update of all container on the host, with asking questions and
+purging unused packages (apt update && apt upgrade && apt full\-upgrade && apt
+autoremove):
+.INDENT 0.0
+.INDENT 3.5
+sudo container update \-n ALL \-f \-r \-p \-y
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container-version.1 b/share/man/container-version.1
new file mode 100644
index 0000000..13e9e31
--- /dev/null
+++ b/share/man/container-version.1
@@ -0,0 +1,92 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER-VERSION 1 compute-tools "Open Infrastructure"
+.SH NAME
+container-version \- Show container version
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer version\fP [\(aqOPTIONS\(aq]
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+The \fBcontainer version\fP command shows the container version number.
+.SH OPTIONS
+.sp
+The \fBcontainer version\fP command has no options.
+.SH EXAMPLES
+.sp
+Show container version:
+.INDENT 0.0
+.INDENT 3.5
+container version
+.UNINDENT
+.UNINDENT
+.SH SEE ALSO
+.nf
+compute\-tools(7),
+container(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.
diff --git a/share/man/container.1 b/share/man/container.1
new file mode 100644
index 0000000..671f4d4
--- /dev/null
+++ b/share/man/container.1
@@ -0,0 +1,185 @@
+.\" Open Infrastructure: compute-tools
+.\"
+.\" Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0+
+.\"
+.\" This program is free software: you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation, either version 3 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This program is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.\"
+.
+.TH CONTAINER 1 compute-tools "Open Infrastructure"
+.SH NAME
+container \- Manage systemd-nspawn containers
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
+.SH SYNOPSIS
+.nf
+\fBcontainer\fP \(aqCOMMAND\(aq [\(aqOPTIONS\(aq]
+\fBcontainer\fP \(aqCOMMAND1\(aq,\(aqCOMMAND2\(aq,... \(aqCOMMANDn\(aq
+.fi
+.sp
+.SH DESCRIPTION
+.sp
+compute\-tools provides the system integration for managing containers using
+systemd\-nspawn.
+.SH OPTIONS
+.sp
+The following \fBcontainer\fP common options are available:
+.INDENT 0.0
+.TP
+.B \-n, \-\-name=\(aqNAME\(aq:
+Specify container name.
+.UNINDENT
+.SH COMMANDS
+.sp
+The following \fBcontainer\fP commands are available:
+.INDENT 0.0
+.TP
+.B build:
+Build a new container, see container\-build(1).
+.TP
+.B start:
+Start a container, see container\-start(1).
+.TP
+.B rebuild:
+Rebuild a container, see container\-rebuild(1).
+.TP
+.B restart:
+Restart a container, see container\-restart(1).
+.TP
+.B stop:
+Stop a container, see container\-stop(1).
+.TP
+.B remove:
+Remove a container, see container\-remove(1).
+.TP
+.B move:
+Rename a container, see container\-move(1).
+.TP
+.B console:
+Attach console to a container, see container\-console(1).
+.TP
+.B enter:
+Enter a container namespace, see container\-enter(1).
+.TP
+.B run:
+Execute commands in a container namespace, see container\-run(1).
+.TP
+.B info:
+Show specific information of a container, see container\-info(1).
+.TP
+.B key:
+Manage GnuPG keyring for container operations, see container\-key(1).
+.TP
+.B limit:
+Limit resources of a container, see container\-limit(1).
+.TP
+.B list:
+List container on the system, see container\-list(1).
+.TP
+.B log:
+Show container log, see container\-log(1).
+.TP
+.B status:
+Show container status, see container\-status(1).
+.TP
+.B top:
+Dynamic list of container on the system, see container\-top(1).
+.TP
+.B update:
+Update the packages installed in a container.
+.TP
+.B version:
+Show container version, see container\-version(1).
+.UNINDENT
+.SH FILES
+.sp
+The following files are used:
+.INDENT 0.0
+.TP
+.B /etc/compute\-tools/container.conf, /etc/compute\-tools/container.conf.d/*.conf:
+Container configuration files.
+.TP
+.B /usr/bin/container, /usr/bin/cnt:
+Container program.
+.TP
+.B /usr/bin/container\-shell, /usr/bin/cntsh:
+Container shell program.
+.TP
+.B /usr/libexec/container:
+Container commands.
+.TP
+.B /usr/share/compute\-tools/:
+Container shared data.
+.TP
+.B /usr/share/doc/compute\-tools:
+Container documentation files.
+.TP
+.B /var/cache/container:
+Container cache directory.
+.TP
+.B /var/lib/machines:
+Container root directory.
+.TP
+.B /var/log/compute\-tools:
+Container log files.
+.UNINDENT
+.SH SEE ALSO
+.nf
+machinectl(1),
+systemd\-nspawn(1).
+.fi
+.sp
+.SH HOMEPAGE
+.sp
+More information about compute\-tools and the Open Infrastructure project can be
+found on the homepage (\fI\%https://open\-infrastructure.net\fP).
+.SH CONTACT
+.sp
+Bug reports, feature requests, help, patches, support and everything else are
+welcome on the Open Infrastructure Software Mailing List
+<\fI\%software@lists.open\-infrastructure.net\fP>.
+.sp
+Debian specific bugs can also be reported in the Debian Bug Tracking System
+(\fI\%https://bugs.debian.org\fP).
+.SH AUTHORS
+.sp
+compute\-tools were written by Daniel Baumann
+<\fI\%daniel.baumann@open\-infrastructure.net\fP> and others.
+.