Deprecated: NewfoldLabs\WP\Module\Insights\Admin\Admin::__construct(): Implicitly marking parameter $repository as nullable is deprecated, the explicit nullable type must be used instead in /home1/jcclnymy/public_html/website_7e7ae575/wp-content/plugins/bluehost-wordpress-plugin/vendor/newfold-labs/wp-module-insights/includes/Admin/Admin.php on line 28
Docker on Linux – DeciusAc

Docker on Linux

Install Docker, manage containers, images, and use Docker Compose on Linux.

Category: Docker

Install Docker on Ubuntu

# Remove old versions
sudo apt remove docker docker-engine docker.io containerd runc

# Install dependencies
sudo apt update && sudo apt install -y ca-certificates curl gnupg

# Add Docker's GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Add the repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg]   https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |   sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Verify
docker --version

Run Docker Without sudo

sudo usermod -aG docker $USER
newgrp docker

Essential Docker Commands

# Pull an image
docker pull nginx:latest

# Run a container
docker run -d -p 80:80 --name webserver nginx

# List running containers
docker ps

# List all containers (including stopped)
docker ps -a

# Stop and remove a container
docker stop webserver
docker rm webserver

# View container logs
docker logs webserver -f

# Execute a command inside a running container
docker exec -it webserver bash

Image Management

# List images
docker images

# Remove an image
docker rmi nginx:latest

# Remove all unused images
docker image prune -a

# Build an image from a Dockerfile
docker build -t myapp:1.0 .

Docker Compose

Create a docker-compose.yml for a multi-container stack:

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: mydb
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:
# Start the stack
docker compose up -d

# Stop the stack
docker compose down

# View logs
docker compose logs -f

Clean Up

# Remove all stopped containers, unused networks, images, and build cache
docker system prune -a --volumes