Skip to main content

My Docker Infrastructure

Portainer Web Interface

During the Initial Days of the setup when I was in Grade 9, I tended to use the Docker Command Line Interface on Ubuntu (Server Edition, no GUI). My strategy was simple, On servers not having docker, execute sudo apt install docker docker-compose -y and then (for uniformity) keep all docker (if only a container) and docker-compose (if container with dependent containers) files at /opt/project-name. Write the docker-compose.yml file and hit enter on sudo docker-compose up -d and obviously use docker -it to use the docker shell.

Anyhow, lot of intro. Now, this process started becoming real tedious when the number of containers became more than 10. Every time for checking volumes, docker internal network interfaces, running containers, etc. I had to ssh and use the docker command. The came my superhero Portainer. I setup portainer on my main server inside.atheesh.org by using Docker CLI for the last time. And then,

image.png

Portainer Image attached for Reference.

Portainer is a Universal Container Management System. It helps you configure, monitor and secure containers across Docker, Kubernetes, Swarm and Nomad environments.

Source: https://www.portainer.io/

Portainer Agent

Hosting a Portainer Instance for every docker server became really tedious. Every time, i had to keep track of the containers and in which server are they running. To access a container, I either had to visit containers.atheesh.org or containers.security.atheesh.org or containers.dc01.login.atheesh.org or containers.dc02.login.atheesh.org.

Again Portainer to the Rescue. It has a feature named Portainer Agent which is a wrapper around the Official Docker API and claims to fix certain limitations of the Docker API. I deployed Portainer Agent on all the other servers using docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.9.3 and added all the other servers to the panel at inside.atheesh.org as in the Screenshots section.

Screenshots

image.png

image.png