Skip to content

4.1 Containerization

echadbourne edited this page Feb 16, 2024 · 21 revisions

IP addresses

To start with, we have to finish the initial setup of the new Ubuntu box. I started with the IP addresses by editing the file at /etc/netplan/00-installer-config.yaml and using the following headers and fields:

Screenshot 2024-02-13 at 4 50 31 PM

I then ran netplan apply and pinged both inside and outside the network to check connectivity.

Hostname

I updated the "preserve_hostname" value to true in /etc/cloud/cloud.cfg so it would stick with the same hostname upon restart

Then I used hostnamectl set-hostname docker01-elizabeth to set the hostname, and I updated /etc/hosts with the new hostname and ip address (replacing the default "ubuntu") I then restarted the server to make sure that the hostname was going to stick

At this point everything was happy. I was able to ping by hostname both inside and outside of docker01.

UFW firewall

Allow things through the firewall using UFW like so:

  • sudo ufw allow [port]

Installing Docker

I used the tutorial at this website: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04

In short, here is what I did:

sudo apt update - get the updated list of packages

sudo apt install apt-transport-https ca-certificates curl software-properties-common - Install a few pre-requisites

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - Install the GPG key for the official docker repository

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" - add the docker repository as a place the box can look for things

Double check that you are about to install from the Docker repo instead of the default Ubuntu one: apt-cache policy docker-ce

INSTALL DOCKER!!!

  • sudo apt install docker-ce

You can check the status of docker with: sudo systemctl status docker

Docker Compose

Start by confirming the latest version of docker compose on this website: https://github.com/docker/compose/releases

For me this was 2.24.5, so that's what I used in the command below:

sudo curl -L "https://github.com/docker/compose/releases/download/2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose - Set the proper permissions to allow the docker-compose command to be executable

docker compose version - check the version of docker compose

Using docker

docker run --rm archlinux:latest /bin/echo "Hello SYS265 from Arch Linux"

  • Run the echo "Hello SYS265 from Arch Linux" command on the arcb linux container

docker images - show the current images on the vm

Use the following commands to show the kernel running on the arch linux and the host, notice that they are the same:

Screenshot 2024-02-14 at 12 18 54 PM

Pull a python image from the docker repo: docker run -d -P training/webapp python app.py

  • The “-d” tag makes it so the image is running in the background and not the foreground, which is the default. The “-P” tag exposes the open ports of the image and assigns them to random open ports on the host.

Wordpress

Next it was time to use docker-compose to set up a wordpress image to run on docker01. I made a new directory for the pertinent files and placed this file inside:

image

Clone this wiki locally