4.6 KiB
Table of Contents
Installing ContainerLab
ContainerLab can be installed using the installation script that detects the operating system type and installs the appropriate package:
# download and install the latest version (may require sudo)
bash -c "$(curl -sL https://get.containerlab.dev)"
# with wget
bash -c "$(wget -qO - https://get.containerlab.dev)"
Installing vrnetlab
Vrnetlab places a VM inside a container and makes it executable as if it were a container image.
To do this, vrnetlab provides a set of scripts that build the container image from a VM disk provided by the user.
# update and install dependencies
sudo apt update
sudo apt -y install python3-bs4 sshpass make
sudo apt -y install git
# move to /opt and clone the project
cd /opt && sudo git clone https://github.com/hellt/vrnetlab
# optional: change the directory permissions
sudo chown -R $USER:$USER vrnetlab
Installing Docker
This is the containerization engine used by ContainerLab.
# Update and install dependencies
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# To be able to execute docker with the current user
sudo usermod -aG docker $USER
Images installation
Arista cEOS
To download and install the arista cEOS image, you need to be registered to arista.com.
Once you created an account, please logged in and down the cEOS docker images.
To add this new image to docker, please use the docker CLI command :
docker import cEOS-lab-4.30.3M.tar ceos:4.30.3M
Cisco N9Kv
Cisco’s N9Kv is also available for free (again, locked behind an account registration).
Please, download the qcow2 image and move it to the vrnetlab/n9kv folder :
➜ n9kv git:(master) pwd
/opt/vrnetlab/n9kv
➜ n9kv git:(master) ls -l
total 1931856
drwxr-xr-x 2 root root 4096 8 oct. 13:44 docker
-rw-r--r-- 1 root root 508 8 oct. 13:44 Makefile
-rwxr--r-- 1 root root 1978204160 14 mai 2022 nxosv.10.2.3.qcow2
-rw-r--r-- 1 root root 585 8 oct. 13:44 README.md
Be sure to use the "n9kv" folder and not the "nxos" folder - the "nxos" folder is for the older titanium images. Once the image is copied here, trigger "make" to build the docker image for this
➜ n9kv git:(master) sudo make
for IMAGE in nxosv.10.2.3.qcow2; do \
echo "Making $IMAGE"; \
make IMAGE=$IMAGE docker-build; \
done
Making nxosv.10.2.3.qcow2
make[1] : on entre dans le répertoire « /opt/vrnetlab/n9kv »
rm -f docker/*.qcow2* docker/*.tgz* docker/*.vmdk* docker/*.iso
Building docker image using nxosv.10.2.3.qcow2 as vrnetlab/vr-n9kv:10.2.3
cp ../common/* docker/
make IMAGE=$IMAGE docker-build-image-copy
make[2] : on entre dans le répertoire « /opt/vrnetlab/n9kv »
cp nxosv.10.2.3.qcow2* docker/
make[2] : on quitte le répertoire « /opt/vrnetlab/n9kv »
(cd docker; docker build --build-arg http_proxy= --build-arg https_proxy= --build-arg IMAGE=nxosv.10.2.3.qcow2 -t vrnetlab/vr-n9kv:10.2.3 .)
[+] Building 96.9s (10/10)
FINISHED
docker:default
[...]
=> [internal] load build definition from Dockerfile
make[1] : on quitte le répertoire « /opt/vrnetlab/n9kv »
Now you should see images available to use :
➜ n9kv git:(master) sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vrnetlab/vr-n9kv 9.3.9 75c3c348b49f 48 seconds ago 2.43GB
ceos 4.30.3M 63870e68ff8d 2 hours ago 1.95GB