Cách cài đặt và sử dụng Docker trên Ubuntu cho người mới bắt đầu
Mục lục bài viết
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 nginxchạy container mới từ image.docker run -d -p 8080:80 --name my-web nginxchạy nền, map port.docker psxem container đang chạy.docker ps -axem tất cả container.docker stop my-webdừng container.docker start my-webkhởi động lại.docker rm my-webxóa container.docker logs my-webxem log.docker exec -it my-web bashvào shell trong container.
Quản lý image:
docker imagesxem image đã tải.docker pull ubuntu:22.04tải image.docker rmi my-imagexó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
docker-compose up thay thế hàng loạt lệnh docker run.5. Tổng kết và bước tiếp theo
Sau khi tìm hiểu đầy đủ về cách cài đặt và sử dụng docker trên ubuntu cho người mới bắt đầu, điều quan trọng là chuyển từ lý thuyết sang thực hành một cách có kế hoạch.
Tóm tắt những điểm quan trọng nhất:
- Bắt đầu từ những bước cơ bản nhất trước khi nâng cao.
- Kiên trì thực hành đều đặn quan trọng hơn cường độ cao nhưng không nhất quán.
- Đừng ngại mắc lỗi, mỗi lỗi là bài học quý giá.
- Tìm kiếm cộng đồng hoặc mentor để có hỗ trợ và phản hồi.
Kế hoạch hành động ngay hôm nay:
- Xác định một điều cụ thể bạn sẽ thực hiện trong vòng 24 giờ tới.
- Đặt nhắc nhở để không bị quên trong công việc bận rộn hàng ngày.
- Chia sẻ mục tiêu với một người bạn hoặc đồng nghiệp để tạo accountability.
Tài nguyên học tập thêm:
- Tìm kiếm các cộng đồng trực tuyến liên quan đến chủ đề này.
- Theo dõi các blog và kênh YouTube uy tín của chuyên gia trong lĩnh vực.
- Đọc ít nhất một cuốn sách chuyên sâu về chủ đề bạn quan tâm.
🙋 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.