Cách cài đặt và sử dụng Docker trên Ubuntu cho người mới bắt đầu

⏱️ 6 phút đọcBeginner
#docker #ubuntu #container #devops #linux
Cách cài đặt và sử dụng Docker trên Ubuntu cho người mới bắt đầu

1. Docker là gì? Container vs Máy ảo

Docker là nền tảng đóng gói ứng dụng vào container image chuẩn, chạy được trên mọi hệ thống. Container giống máy ảo nhẹ (MB thay vì GB), khởi động giây thay vì phút.

Container vs Máy ảo (VM):

  • VM: Mỗi máy ảo có kernel riêng, tốn GB RAM, khởi động phút.
  • Container: Chia sẻ kernel host, chỉ MB, khởi động giây.

Lợi ích Docker:

  • Nhất quán: 'Nó chạy trên máy tôi mà' không còn.
  • Tái sử dụng: Image có sẵn trên Docker Hub.
  • Cô lập: Mỗi container riêng biệt.
  • Dễ scale: Chạy hàng trăm container trên một máy.

2. Cài đặt Docker Engine trên Ubuntu

Bước 1: Cập nhật package:

sudo apt update && sudo apt upgrade -y

Bước 2: Cài dependencies:

sudo apt install ca-certificates curl

Bước 3: Thêm Docker repository:

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 "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Bước 4: Cài Docker:

sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io

Bước 5: Thêm user vào group docker để không cần sudo:

sudo usermod -aG docker $USER

Đăng xuất và đăng nhập lại (hoặc chạy newgrp docker).

Bước 6: Kiểm tra:

docker --version

docker run hello-world

3. Các lệnh Docker cơ bản hàng ngày

Quản lý container:

  • docker run nginx chạy container mới từ image.
  • docker run -d -p 8080:80 --name my-web nginx chạy nền, map port.
  • docker ps xem container đang chạy.
  • docker ps -a xem tất cả container.
  • docker stop my-web dừng container.
  • docker start my-web khởi động lại.
  • docker rm my-web xóa container.
  • docker logs my-web xem log.
  • docker exec -it my-web bash vào shell trong container.

Quản lý image:

  • docker images xem image đã tải.
  • docker pull ubuntu:22.04 tải image.
  • docker rmi my-image xóa image.
  • docker build -t my-app:latest . build image từ Dockerfile.

4. Dockerfile và Docker Compose cơ bản

Dockerfile mẫu cho ứng dụng Node.js:

FROM node:20-alphine (base image nhẹ)

WORKDIR /app

COPY package.json .

RUN npm install

COPY . .

EXPOSE 3000

CMD ["node", "index.js"]

Build: docker build -t my-node-app .

Docker Compose cho ứng dụng nhiều container (ví dụ web + database):

Tạo docker-compose.yml:

```

version: '3.8'

services:

web:

build: .

ports:

- "3000:3000"

depends_on:

- db

environment:

- DB_HOST=db

db:

image: postgres:16

environment:

POSTGRES_PASSWORD: secret

volumes:

- pgdata:/var/lib/postgresql/data

volumes:

pgdata:

```

Chạy: docker-compose up -d

💡TIP
Docker Compose giúp quản lý toàn bộ ứng dụng bằng một file duy nhất. Lệnh docker-compose up thay thế hàng loạt lệnh docker run.

🙋 Câu hỏi thường gặp

Docker có miễn phí không?

Docker Engine và Docker Compose là mã nguồn mở và miễn phí. Docker Desktop có giới hạn cho doanh nghiệp lớn (250+ nhân viên hoặc doanh thu $10M+), nhưng cá nhân và startup nhỏ vẫn dùng free.

Học Docker mất bao lâu?

Cơ bản: 2-3 ngày nắm lệnh chính và chạy container đầu tiên.

Docker Compose: thêm 1-2 ngày.

Dockerfile và custom image: 1 tuần. Thực hành dự án thực tế 2-3 tuần.

Docker có chạy trên Windows không?

Có. Docker Desktop cho Windows hỗ trợ WSL 2 backend. Cài WSL 2 trước, sau đó cài Docker Desktop. Docker chạy Linux container trên Windows thông qua WSL 2.


Kiến thức liên quan