1. Cài đặt Docker trên Ubuntu 24.04
Ubuntu là platform phổ biến nhất để chạy Docker Engine trong production.
Bước 1: Gỡ các phiên bản cũ
# Gỡ các packages Docker cũ (nếu có) sudo apt-get remove docker docker-engine docker.io containerd runcCleanup
sudo apt-get autoremove -y
Bước 2: Cài đặt prerequisites
# Update package index sudo apt-get updateCài đặt các packages cần thiết
sudo apt-get install -y
ca-certificates
curl
gnupg
lsb-release
Bước 3: Thêm Docker GPG key và repository
# Thêm Docker official 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 sudo chmod a+r /etc/apt/keyrings/docker.gpgThêm Docker 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
Bước 4: Cài đặt Docker Engine
# Update package index sudo apt-get updateCài đặt Docker Engine, CLI, containerd, và plugins
sudo apt-get install -y
docker-ce
docker-ce-cli
containerd.io
docker-buildx-plugin
docker-compose-plugin
Bước 5: Post-installation
# Thêm user vào docker group (không cần sudo) sudo usermod -aG docker $USERApply group changes (hoặc logout/login)
newgrp docker
Verify cài đặt thành công
docker run hello-world
2. Cài đặt Docker trên CentOS/RHEL
# Cài đặt yum-utils sudo yum install -y yum-utilsThêm Docker repository
sudo yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repoCài đặt Docker Engine
sudo yum install -y docker-ce docker-ce-cli containerd.io
docker-buildx-plugin docker-compose-pluginKhởi động Docker
sudo systemctl start docker sudo systemctl enable docker
Thêm user vào docker group
sudo usermod -aG docker $USER
3. Cài đặt Docker Desktop (macOS/Windows)
Trên macOS và Windows, sử dụng Docker Desktop:
macOS: Tải từ docker.com, kéo vào Applications, hoặc dùng
brew install --cask dockerWindows: Tải Docker Desktop installer, cần WSL 2 backend (Windows 10/11)
4. Cấu hình Docker Daemon
File cấu hình daemon nằm ở /etc/docker/daemon.json:
{
"storage-driver": "overlay2",
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"default-address-pools": [
{"base": "172.80.0.0/16", "size": 24}
],
"dns": ["8.8.8.8", "8.8.4.4"],
"live-restore": true,
"userland-proxy": false
}
# Sau khi thay đổi daemon.json, restart Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
5. Docker CLI Cơ bản
5.1. docker run - Chạy container
# Chạy container đơn giản docker run hello-worldChạy container interactive (vào shell)
docker run -it ubuntu bash
Chạy container ở background (detached mode)
docker run -d --name my-nginx -p 8080:80 nginx
Chạy với environment variables
docker run -d --name my-db
-e POSTGRES_PASSWORD=mysecretpassword
-e POSTGRES_DB=myapp
-p 5432:5432
postgres:16Chạy với volume mount
docker run -d --name my-app
-v /host/path:/container/path
-p 3000:3000
node:20-alpine
5.2. Quản lý containers
# Liệt kê containers đang chạy docker psLiệt kê tất cả containers (kể cả stopped)
docker ps -a
Dừng container
docker stop my-nginx
Khởi động lại container
docker start my-nginx
Restart container
docker restart my-nginx
Xóa container (phải stop trước)
docker rm my-nginx
Force xóa container đang chạy
docker rm -f my-nginx
Xóa tất cả stopped containers
docker container prune
5.3. Tương tác với container
# Exec - chạy lệnh trong container đang chạy docker exec -it my-nginx bash docker exec my-nginx cat /etc/nginx/nginx.confXem logs
docker logs my-nginx docker logs -f my-nginx # Follow logs (real-time) docker logs --tail 100 my-nginx # 100 dòng cuối docker logs --since 1h my-nginx # Logs trong 1 giờ qua
Copy files giữa host và container
docker cp myfile.txt my-nginx:/tmp/ docker cp my-nginx:/etc/nginx/nginx.conf ./
Xem chi tiết container
docker inspect my-nginx
Xem resource usage
docker stats docker stats my-nginx
6. Docker System Commands
# Thông tin hệ thống Docker docker infoPhiên bản Docker
docker version
Disk usage
docker system df docker system df -v # Chi tiết
Cleanup toàn bộ unused resources
docker system prune # Containers, networks, images (dangling) docker system prune -a # Bao gồm cả unused images docker system prune --volumes # Bao gồm cả volumes
7. Thực hành
Hãy thử các bài tập sau để làm quen với Docker:
Chạy một Nginx container, truy cập qua browser tại
http://localhost:8080Chạy một PostgreSQL container với custom password
Exec vào container và kiểm tra các processes bên trong
Xem logs và stats của containers
Dọn dẹp tất cả containers và images
8. Tổng kết
Trong bài này, bạn đã học được:
Cài đặt Docker Engine trên các hệ điều hành phổ biến
Cấu hình Docker daemon với daemon.json
Các lệnh cơ bản: run, ps, stop, rm, exec, logs
Interactive vs Detached mode
Docker system commands để quản lý resources
Bài tiếp theo sẽ đi sâu vào Docker Images - cách build, pull và quản lý images hiệu quả.