.## 1. Docker là gì và mối quan hệ của nó với Ubuntu
Docker là một công nghệ ảo hoá đóng gói môi trường chạy ứng dụng thành các đơn vị gọi là “container”, cho phép chúng chạy một cách nhất quán trên các máy chủ và máy tính khác nhau. Không giống như các máy ảo truyền thống, Docker chạy container trực tiếp trên hệ điều hành chủ, khiến nó nhẹ hơn và nhanh hơn đáng kể.
Các hệ điều hành dựa trên Linux như Ubuntu đặc biệt phù hợp với Docker, vì vậy Docker được sử dụng rộng rãi bởi cả doanh nghiệp và các nhà phát triển cá nhân cũng như quản trị viên máy chủ. Điều này là do Ubuntu tự nó là mã nguồn mở, được áp dụng rộng rãi trong môi trường máy chủ, dễ quản lý bằng các hệ thống gói, và được hỗ trợ bởi tài liệu chính thức phong phú.
Bằng cách sử dụng Docker, bạn có thể loại bỏ các vấn đề phổ biến như “chạy được trên máy của tôi nhưng không chạy trên máy chủ”. Dù trên PC phát triển hay máy chủ sản xuất, các container Docker cho phép bạn tái tạo chính xác cùng một môi trường ở bất kỳ đâu. Ubuntu cũng được Docker hỗ trợ chính thức, vì vậy các hướng dẫn cài đặt và tài nguyên khắc phục sự cố rất phong phú.
Trong bài viết này, chúng tôi sẽ giải thích rõ ràng cách cài đặt Docker trên Ubuntu và khởi chạy một container Ubuntu. Dù bạn mới bắt đầu với Docker hay đã có kinh nghiệm, hướng dẫn này sẽ giúp bạn củng cố kiến thức nền tảng.
- 1 2. Môi trường yêu cầu và các điều kiện tiên quyết
- 2 3. Cài đặt và cấu hình Docker Engine
- 3 4. Sử dụng Docker mà không cần sudo
- 4 5. Khởi động Docker Daemon và Bật Tự động Khởi động
- 5 6. Khởi động Container Ubuntu
- 6 7. Các Lệnh Docker Thiết yếu cho Quản lý Container
- 7 8. Khắc phục sự cố và Các Vấn đề Thường gặp
- 8 9. Tóm Tắt và Các Bước Tiếp Theo
- 9 10. Câu Hỏi Thường Gặp
2. Môi trường yêu cầu và các điều kiện tiên quyết
Trước khi sử dụng Docker trên Ubuntu, cần chuẩn bị một số điều kiện tiên quyết và kiểm tra. Phần này tóm tắt môi trường yêu cầu và các điểm quan trọng cần xác nhận trước để đảm bảo quá trình cài đặt diễn ra suôn sẻ.
Phiên bản Ubuntu
Docker được khuyến nghị cho Ubuntu 18.04 LTS trở lên. Các phiên bản Hỗ trợ Dài hạn (LTS) như Ubuntu 20.04 LTS, Ubuntu 22.04 LTS và Ubuntu 24.04 LTS được hỗ trợ đặc biệt tốt. Các phiên bản cũ hơn có thể gặp vấn đề về phụ thuộc hoặc gói, vì vậy việc sử dụng phiên bản LTS mới nhất được khuyến cáo mạnh mẽ.
Yêu cầu hệ thống
Mặc dù Docker nhẹ, nhưng việc chạy nhiều container hoặc sử dụng nó cho phát triển và kiểm thử đòi hỏi tài nguyên hệ thống đủ. Các thông số tối thiểu sau được khuyến nghị:
- Ubuntu 64-bit (không hỗ trợ 32-bit)
- CPU: 2 nhân trở lên (đề xuất)
- RAM: ít nhất 2 GB (đề xuất 4 GB hoặc hơn)
- Dung lượng ổ đĩa trống: ít nhất 10 GB
Kết nối Internet
Cần có kết nối Internet để cài đặt Docker và tải các image. Giai đoạn thiết lập ban đầu có thể tải xuống một lượng dữ liệu lớn, vì vậy nên có kết nối ổn định.
Quyền người dùng
Việc cài đặt Docker và quản lý các thiết lập hệ thống yêu cầu quyền sudo (quản trị). Nếu bạn chỉ có quyền người dùng tiêu chuẩn, hãy yêu cầu quyền tạm thời hoặc nhờ sự hỗ trợ của quản trị viên.
Gỡ bỏ các gói Docker cũ
Nếu trước đây bạn đã cài đặt các gói như docker hoặc docker.io một cách thủ công, nên gỡ bỏ chúng để tránh xung đột.
sudo apt-get remove docker docker-engine docker.io containerd runc
Điều này ngăn ngừa các vấn đề tiềm ẩn do các gói cũ gây ra.
Tóm tắt
Sau khi xác nhận các điều kiện tiên quyết trong phần này, hãy tiến hành các bước cài đặt và cấu hình trong các chương tiếp theo.
Với việc chuẩn bị đúng đắn, việc cài đặt Docker trên Ubuntu sẽ diễn ra rất suôn sẻ.
3. Cài đặt và cấu hình Docker Engine
Phần này giải thích cách cài đặt Docker Engine trên Ubuntu và thực hiện các thiết lập cơ bản. Sử dụng kho lưu trữ chính thức của Docker sẽ giúp bạn nhận được phiên bản ổn định mới nhất.
Thêm kho lưu trữ chính thức và chuẩn bị
Đầu tiên, thêm kho lưu trữ chính thức của Docker vào apt. Tất cả các bước đều thực hiện trong terminal.
- Cài đặt các gói cần thiết
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
- Thêm khóa GPG
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Thêm kho Docker
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
Cài đặt Docker Engine
Sau khi thêm kho lưu trữ, cài đặt Docker Engine.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Sau khi cài đặt hoàn tất, xác minh bằng cách kiểm tra phiên bản:
docker --version
Nếu bạn thấy đầu ra như Docker version 25.0.3, cài đặt đã thành công.
Về Docker Desktop (Tùy chọn)
Trên Ubuntu, Docker Engine thường là đủ. Docker Desktop cho Linux cũng có sẵn nếu bạn cần giao diện đồ họa, nhưng đối với các quy trình làm việc dựa trên CLI, chỉ Docker Engine là hơn đủ.
Khắc phục sự cố cài đặt
Nếu bạn gặp lỗi như “gói không tìm thấy,” hãy kiểm tra lại cấu hình kho lưu trữ và thiết lập khóa GPG. Xung đột với các gói Docker cũ cũng có thể gây ra vấn đề, vì vậy hãy xem lại các bước gỡ cài đặt nếu cần.
4. Sử dụng Docker mà không cần sudo
Theo mặc định, các lệnh Docker yêu cầu quyền sudo. Yêu cầu sudo cho mọi lệnh là bất tiện và có thể rủi ro nếu lệnh bị gõ sai.
Cách tiếp cận được khuyến nghị là thêm tài khoản người dùng của bạn vào nhóm docker, cho phép bạn sử dụng Docker an toàn mà không cần sudo.
Thêm người dùng vào nhóm docker
- Thêm người dùng hiện tại vào nhóm docker
sudo usermod -aG docker $USER
- Áp dụng các thay đổi
Đăng xuất và đăng nhập lại để áp dụng thành viên nhóm mới.
Ngoài ra, bạn có thể áp dụng ngay lập tức bằng cách sử dụng:
newgrp docker
- Xác minh
docker version
Ghi chú bảo mật
Người dùng trong nhóm docker có quyền nâng cao. Trong môi trường đa người dùng, quản lý thành viên nhóm docker cẩn thận. Đối với sử dụng cá nhân hoặc phát triển, điều này thường không phải là vấn đề.
5. Khởi động Docker Daemon và Bật Tự động Khởi động
Docker chạy như một dịch vụ nền gọi là Docker daemon (dockerd). Mặc dù nó thường được khởi động tự động sau khi cài đặt, việc hiểu cách quản lý nó là quan trọng.
Khởi động, Dừng và Khởi động lại Docker
sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
sudo systemctl status docker
Bật hoặc Tắt Tự động Khởi động khi Boot
sudo systemctl enable docker
sudo systemctl disable docker
Kiểm tra Nhật ký
journalctl -u docker
6. Khởi động Container Ubuntu
Phần này giải thích cách thực sự khởi động một container Ubuntu trên Docker.
Kéo Image Ubuntu
docker pull ubuntu:22.04
Chạy Container Ubuntu
docker run -it --name myubuntu ubuntu:22.04 /bin/bash
Chạy ở Nền
docker run -d --name myubuntu ubuntu:22.04 tail -f /dev/null

Dừng và Khởi động lại Containers
docker stop myubuntu
docker start myubuntu
Kiểm tra Trạng thái Container
docker ps
docker ps -a
7. Các Lệnh Docker Thiết yếu cho Quản lý Container
Phần này tóm tắt các lệnh Docker thường dùng cho hoạt động hàng ngày.
Liệt kê Container
docker ps
docker ps -a
Khởi động, Dừng, Khởi động lại
docker start [container]
docker stop [container]
docker restart [container]
Truy cập Containers
docker exec -it [container] /bin/bash
Xóa Containers và Images
docker rm [container]
docker rm -f [container]
docker images
docker rmi [image]
Nhật ký và Sử dụng Đĩa
docker logs [container]
docker system df
8. Khắc phục sự cố và Các Vấn đề Thường gặp
Phần này bao gồm các vấn đề Docker phổ biến và cách giải quyết chúng.
Không thể Kết nối đến Docker Daemon
Đảm bảo Docker đang chạy và người dùng của bạn có quyền phù hợp.
Xung đột Gói
sudo apt-get remove docker docker-engine docker.io containerd runc
Lỗi Khởi Động Container
Kiểm tra tên hình ảnh, bộ nhớ khả dụng và dung lượng đĩa.
9. Tóm Tắt và Các Bước Tiếp Theo
Bài viết này đã bao quát việc cài đặt Docker trên Ubuntu và chạy các container Ubuntu, từ các khái niệm cơ bản đến sử dụng thực tế.
Các Bước Tiếp Theo
- Xây dựng hình ảnh tùy chỉnh với Dockerfile
- Quản lý nhiều container với Docker Compose
- Sử dụng volumes và networks
- Khám phá orchestration container với Kubernetes
10. Câu Hỏi Thường Gặp
Phần này trả lời các câu hỏi thường gặp liên quan đến Docker trên Ubuntu.
Docker có thể được sử dụng trên cả Ubuntu Desktop và Server không?
Có. Ubuntu Server thường được ưu tiên cho sản xuất do sử dụng tài nguyên thấp hơn.
Docker Desktop có bắt buộc không?
Không. Chỉ Docker Engine là đủ trên Ubuntu.
Chế độ rootless là gì?
Chế độ rootless cho phép Docker chạy mà không cần quyền root, cải thiện bảo mật với một số hạn chế.
Làm thế nào để tôi lưu trữ dữ liệu lâu dài?
docker run -v /host/path:/container/path ubuntu:22.04
Làm thế nào để tôi tự động khởi động container?
docker run --restart=unless-stopped -d ubuntu:22.04


