Docker
For Debian: https://docs.docker.com/engine/install/debian/
Installation
Requirements
sh
sudo apt update
sudo apt install -y ca-certificates curl gnupgAdd repository
sh
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOFsh
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get updateInstall docker dependencies
sh
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginEnable and start docker
sh
sudo systemctl enable docker
sudo systemctl start dockerCheck if docker is running
sh
sudo systemctl status dockerCheatsheet
Docker
docker ps: list containersdocker ps -a: list all containersdocker --version: show versiondocker images: list imagesdocker rm [ID]: remove containerdocker rmi [ID]: remove imagedocker run -it [IMAGE]: run imagedocker run -it --rm [IMAGE]: run image and remove it after exitdocker run -it --rm -v [HOST_PATH]:[CONTAINER_PATH] [IMAGE]: run image and mount volumedocker run -it --rm -v [HOST_PATH]:[CONTAINER_PATH] -p [HOST_PORT]:[CONTAINER_PORT] [IMAGE]: run image and mount volume and expose port
Docker Compose
docker-compose up: start containersdocker-compose up -d: start containers in backgrounddocker-compose down: stop containersdocker-compose down -v: stop containers and remove volumesdocker-compose logs: show logsdocker-compose logs -f: show logs in real timedocker-compose exec [SERVICE] [COMMAND]: execute command in servicedocker-compose exec [SERVICE] sh: execute shell in servicedocker-compose exec [SERVICE] bash: execute bash in servicedocker-compose exec [SERVICE] mysql -u [USER] -p: execute mysql in service
Options
Allow non-root user to run docker
sh
sudo gpasswd -a $USER docker
newgrp dockersh
sudo groupadd docker
sudo usermod -aG docker $USERsh
sudo synogroup --add docker
sudo chown root:docker /var/run/docker.sock
sudo synogroup --member docker $USERAfter this, you may need to log out and back in, or even restart your machine before the permissions take effect.
Login to Docker Hub
sh
sudo docker loginShortcuts
You can create shortcuts for docker commands by adding aliases to your ~/.zshrc or ~/.bashrc.
sh
vim ~/.zshrcbash
alias d-clean='docker image prune -f -a && docker volume prune -f -a'
alias d-clean-network='docker network prune -f'
alias d-clean-container='docker container prune -f -a'
alias d-ps='docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"'
alias d-stats='docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"'
alias dc='docker compose'~/.zshrc