summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Loughridge <jeffbrl@gmail.com>2021-12-06 16:07:28 -0500
committerJeff Loughridge <jeffbrl@gmail.com>2021-12-06 16:07:28 -0500
commitad57b2940aa20bc9ea7d64b7277441ba65e42e2a (patch)
tree6425f6c1c2f32bb40485763f882b5c7923f46c4d
parentd9a55bee74903872e29f1eccadff841e6d23529f (diff)
downloadvyos-documentation-ad57b2940aa20bc9ea7d64b7277441ba65e42e2a.tar.gz
vyos-documentation-ad57b2940aa20bc9ea7d64b7277441ba65e42e2a.zip
Add docker.rst
-rw-r--r--docs/installation/virtual/docker.rst74
1 files changed, 74 insertions, 0 deletions
diff --git a/docs/installation/virtual/docker.rst b/docs/installation/virtual/docker.rst
new file mode 100644
index 00000000..e2bc0198
--- /dev/null
+++ b/docs/installation/virtual/docker.rst
@@ -0,0 +1,74 @@
+.. _docker:
+
+***************************
+Running in Docker Container
+***************************
+
+Docker is an open-source project for deploying applications as standardized
+units called containers. Deploying VyOS in a container provides a simple and
+lightweight mechanism for both testing and packet routing for container
+workloads.
+
+IPv6 Support for docker
+=======================
+
+VyOS requires an IPv6-enabled docker network. Currently linux distributions
+do not enable docker IPv6 support by default. You can enable IPv6 support in
+two ways.
+
+Method 1: Create a docker network with IPv6 support
+---------------------------------------------------
+
+Here is a example using the macvlan driver.
+
+.. code-block:: none
+
+ docker network create --ipv6 -d macvlan -o parent=eth0 --subnet 2001:db8::/64 --subnet 192.0.2.0/24 mynet
+
+Method 2: Add IPv6 support to the docker daemon
+-----------------------------------------------
+
+Edit /etc/docker/daemon.json to set the ``ipv6`` key to ``true`` and to specify
+the ``fixed-cidr-v6`` to your desired IPv6 subnet.
+
+.. code-block:: none
+
+ {
+ "ipv6": true,
+ "fixed-cidr-v6": "2001:db8::/64"
+ }
+
+Reload the docker configuration.
+
+.. code-block:: none
+
+ $ sudo systemctl reload docker
+
+
+Deploy container from ISO
+=========================
+
+Download the ISO on which you want to base the container. In this example,
+the name of the ISO is ``vyos-1.4-rolling-202111281249-amd64.iso``. If you
+created a custom IPv6-enabled network, the ``docker run`` command below
+will require that this network be included as the ``--net`` parameter to
+``docker run``.
+
+.. code-block:: none
+
+ $ mkdir vyos && cd vyos
+ $ cp ~/vyos-1.4-rolling-202111281249-amd64.iso .
+ $ mkdir rootfs
+ $ sudo mount -o loop vyos-1.4-rolling-202111281249-amd64.iso rootfs
+ $ sudo apt-get install -y squashfs-tools
+ $ mkdir unsquashfs
+ $ sudo unsquashfs -f -d unsquashfs/ rootfs/live/filesystem.squashfs
+ $ sudo tar -C unsquashfs -c . | docker import - vyos:1.4-rolling-202111281249
+ $ sudo umount rootfs
+ $ cd ..
+ $ sudo rm -rf vyos
+ $ docker run -d --rm --name vyos --privileged -v /lib/modules:/lib/modules \
+ > vyos:1.4-rolling-202111281249 /sbin/init
+ $ docker exec -ti vyos su - vyos
+
+You can execute ``docker stop vyos`` when you are finished with the container.