Menu
📱 Lihat versi lengkap (non-AMP)
Linux DevOps

Cara Install Docker di Ubuntu Linux

Editor: Hendra WIjaya
Update: 7 January 2026
Baca: 3 menit

Docker adalah platform containerization yang memudahkan deployment aplikasi. Mari pelajari cara install dan menggunakannya.

Prerequisites

System Requirements

# Check Ubuntu version
cat /etc/os-release

# Minimum requirements:
# - Ubuntu 20.04 LTS atau lebih baru
# - 64-bit system
# - Kernel 3.10+

Remove Old Versions

# Hapus versi lama jika ada
sudo apt-get remove docker docker-engine docker.io containerd runc

Install Docker Engine

Setup Repository

# Update package index
sudo apt-get update

# Install prerequisites
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

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

# Setup repository
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

Install Docker

# Update package index again
sudo apt-get update

# Install Docker Engine
sudo apt-get install docker-ce docker-ce-cli containerd.io \
    docker-buildx-plugin docker-compose-plugin

# Verify installation
sudo docker run hello-world

Post-Installation Setup

Add User to Docker Group

# Buat docker group
sudo groupadd docker

# Add user ke group
sudo usermod -aG docker $USER

# Apply changes (logout/login atau run)
newgrp docker

# Test tanpa sudo
docker run hello-world

Enable Docker on Boot

# Enable auto-start
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

# Check status
sudo systemctl status docker

Basic Docker Commands

Image Management

# Pull image dari Docker Hub
docker pull nginx
docker pull node:18-alpine
docker pull mysql:8

# List images
docker images

# Remove image
docker rmi nginx

Container Operations

# Run container
docker run -d --name webserver nginx

# List running containers
docker ps

# List all containers
docker ps -a

# Stop container
docker stop webserver

# Start container
docker start webserver

# Remove container
docker rm webserver

Container with Port Mapping

Expose Ports

# Map port 80 container ke port 8080 host
docker run -d -p 8080:80 --name web nginx

# Multiple port mapping
docker run -d \
    -p 80:80 \
    -p 443:443 \
    --name webserver nginx

Environment Variables

# Set environment variables
docker run -d \
    -e MYSQL_ROOT_PASSWORD=secret \
    -e MYSQL_DATABASE=myapp \
    --name database mysql:8

Volume Management

Create and Use Volumes

# Create volume
docker volume create mydata

# List volumes
docker volume ls

# Use volume in container
docker run -d \
    -v mydata:/var/lib/mysql \
    --name database mysql:8

# Mount host directory
docker run -d \
    -v /home/user/html:/usr/share/nginx/html \
    --name webserver nginx

Docker Compose

Install Docker Compose

# Sudah included dengan docker-compose-plugin
docker compose version

# Alternative: standalone installation
sudo curl -L \
    "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" \
    -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Docker Compose File

# docker-compose.yml
version: "3.8"
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html

  db:
    image: mysql:8
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: myapp
    volumes:
      - dbdata:/var/lib/mysql

volumes:
  dbdata:

Compose Commands

# Start services
docker compose up -d

# Stop services
docker compose down

# View logs
docker compose logs -f

# Rebuild
docker compose up -d --build

Building Docker Images

Dockerfile Example

# Dockerfile
FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000
CMD ["npm", "start"]

Build Image

# Build image
docker build -t myapp:1.0 .

# Build with different Dockerfile
docker build -f Dockerfile.prod -t myapp:prod .

# Push to Docker Hub
docker login
docker tag myapp:1.0 username/myapp:1.0
docker push username/myapp:1.0

Networking

Docker Networks

# Create network
docker network create mynetwork

# List networks
docker network ls

# Connect container to network
docker run -d \
    --network mynetwork \
    --name web nginx

# Connect existing container
docker network connect mynetwork container_name

Cleanup Commands

Remove Unused Resources

# Remove stopped containers
docker container prune

# Remove unused images
docker image prune

# Remove unused volumes
docker volume prune

# Remove all unused resources
docker system prune -a

# Check disk usage
docker system df

Kesimpulan

Docker memudahkan deployment dengan containerization. Mulai dengan basic commands lalu explore Docker Compose untuk multi-container applications.

Artikel Terkait

Bagikan:

Link Postingan: https://www.tirinfo.com/cara-install-docker-ubuntu-linux/