Skip to content

Docker

This page would define installation, uninstallation and user setup for Docker

Info

Run these using your standard user with sudo if required

Docker⚓︎

Installation and Uninstallation⚓︎

Warning

Best way would be to follow Official Docker Guide

Docker Engine and Compose Plugin⚓︎

  • Install docker engine and compose

    Bash
    paru -S docker docker-compose --noconfirm
    

  • Add User to Docker group

    Bash
    sudo usermod -aG docker $USER
    

  • Enable and Run docker service

    Bash
    sudo systemctl enable --now docker.service
    

Warning

Log out and log back in to make sure everything works fine

Uninstallation⚓︎

Bash
paru -Rns docker docker-compose --noconfirm
  • Install pre-requisite packages

    Bash
    1
    2
    3
    4
    5
    6
    sudo apt-get update &&\
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    

  • GPG Key

    Bash
    sudo mkdir -p /etc/apt/keyrings &&\
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    

  • Add Repo URL to apt sources

    Bash
    1
    2
    3
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

  • Finally, Install docker engine

    Bash
    sudo apt-get update &&\
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
    

  • Add User to Docker group

    Bash
    sudo usermod -aG docker $USER
    

  • Enable and Run docker service

    Bash
    sudo systemctl enable --now docker.service
    

Warning

Log out and log back in to make sure everything works fine

Uninstallation⚓︎

Bash
sudo apt-get remove docker docker-engine docker.io containerd runc
  • Install pre-requisite packages

    Bash
    1
    2
    3
    4
    5
    6
    sudo apt-get update &&\
    sudo apt-get install \
        ca-certificates \
        curl \
        gnupg \
        lsb-release
    

  • GPG Key

    Bash
    sudo mkdir -p /etc/apt/keyrings &&\
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
    

  • Add Repo URL to apt sources

    Bash
    1
    2
    3
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    

  • Finally, Install docker engine

    Bash
    sudo apt-get update &&\
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
    

  • Add User to Docker group

    Bash
    sudo usermod -aG docker $USER
    

  • Enable and Run docker service

    Bash
    sudo systemctl enable --now docker.service
    

Warning

Log out and log back in to make sure everything works fine

Uninstallation⚓︎

Bash
sudo apt-get remove docker docker-engine docker.io containerd runc

Environment variables⚓︎

Warning

Official way of doing environment variables in docker-compose is via .env file
This way makes it easier for me to backup env vars with compose files without exposing secrets

  • Create .zshenv file in your home directory and create environment variables with following format

    vim ~/.zshenv
    export "CFG_DIR"="/home/user/.config"
    export "varName"="varValue"
    

  • Restart shell or source file

    Bash
    source ~/.zshenv
    

  • Test variables with echo

    Bash
    echo $CFG_DIR
    

Docker Network⚓︎

  • Create custom docker network for all containers and Databases
    Bash
    docker network create proxy dbs