- 1 1. Giới thiệu
- 2 2. Cài đặt Docker trên Ubuntu
- 3 3. Thao tác cơ bản với Docker image
- 4 4. Tạo image tùy chỉnh với Dockerfile
- 5 5. Cấu hình tiếng Nhật cho container Ubuntu
- 6 6. Tối ưu hóa và giảm kích thước Docker image
- 7 7. Thực hành: Phát triển ứng dụng với container Ubuntu
- 8 8. Câu hỏi thường gặp & Giải đáp sự cố
1. Giới thiệu
Docker là gì?
Docker là một nền tảng sử dụng công nghệ ảo hóa dạng container, giúp phát triển, phân phối và vận hành ứng dụng một cách hiệu quả. Không giống như máy ảo (VM) truyền thống, container chia sẻ kernel của hệ điều hành host, do đó khởi động nhanh hơn và tiêu tốn ít tài nguyên hơn.
Lợi ích khi sử dụng Docker trên Ubuntu
Ubuntu là một trong những bản phân phối Linux tương thích tốt nhất với Docker. Các lý do chính bao gồm:
- Hỗ trợ chính thức: Docker hỗ trợ chính thức cho Ubuntu và có thể dễ dàng cài đặt từ kho lưu trữ chính thức.
- Quản lý gói ổn định: Sử dụng trình quản lý gói APT của Ubuntu giúp quản lý phiên bản Docker dễ dàng.
- Cộng đồng hỗ trợ rộng lớn: Ubuntu có đông đảo người dùng trên toàn thế giới, nên dễ dàng tìm kiếm thông tin khi gặp sự cố.
Bạn sẽ học được gì trong bài viết này
Bài viết này sẽ hướng dẫn chi tiết các nội dung sau:
- Cách cài đặt Docker trên Ubuntu
- Các thao tác cơ bản với Docker image
- Tạo image tùy chỉnh bằng Dockerfile
- Cấu hình môi trường tiếng Nhật cho container Ubuntu
- Tối ưu hóa và giảm kích thước Docker image
- Phát triển ứng dụng trên container Ubuntu
- Các lỗi thường gặp và cách khắc phục
Nội dung phù hợp cho cả người mới bắt đầu và người dùng nâng cao, hy vọng sẽ hữu ích cho bạn.
2. Cài đặt Docker trên Ubuntu
Cài đặt Docker bằng kho lưu trữ chính thức
Trên Ubuntu, bạn có thể dễ dàng cài đặt Docker bằng cách sử dụng kho lưu trữ chính thức. Hãy làm theo các bước dưới đây để thiết lập.
1. Gỡ bỏ các gói Docker cũ
Ubuntu cung cấp sẵn gói docker.io
, nhưng đây có thể là phiên bản cũ, nên cần gỡ bỏ trước.
sudo apt remove docker docker-engine docker.io containerd runc
2. Cài đặt các gói cần thiết
Trước khi cài đặt, hãy cài các gói phụ thuộc cần thiết.
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3. Thêm kho lưu trữ chính thức của Docker
Thêm khóa GPG chính thức của Docker và cấu hình kho lưu trữ.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Cài đặt Docker
Sau khi thêm kho lưu trữ, tiến hành cài đặt Docker.
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. Kiểm tra cài đặt
Để xác nhận Docker đã được cài đặt thành công, hiển thị thông tin phiên bản.
docker --version
Cấu hình ban đầu sau khi cài đặt
1. Khởi động và bật Docker service
Khởi động dịch vụ Docker và cài đặt để tự động khởi động khi hệ thống bật.
sudo systemctl start docker
sudo systemctl enable docker
2. Cho phép sử dụng Docker với user không phải root
Mặc định chỉ user root mới chạy được Docker. Để user thường có thể dùng Docker, hãy thực hiện:
sudo usermod -aG docker $USER
Để áp dụng, hãy đăng xuất và đăng nhập lại.
3. Kiểm tra hoạt động
Hãy chạy container hello-world
với quyền user thường để kiểm tra Docker hoạt động đúng.
docker run hello-world
Nếu xuất hiện thông báo “Hello from Docker!” là cài đặt thành công.

3. Thao tác cơ bản với Docker image
Docker image là gì?
Docker image giống như một mẫu dùng để tạo container. Sử dụng image Ubuntu giúp bạn khởi tạo nhanh môi trường Ubuntu chỉ với vài lệnh.
Tải image Ubuntu từ Docker Hub
Docker Hub có rất nhiều image chính thức. Để tải image Ubuntu, hãy dùng lệnh:
docker pull ubuntu
Khởi động và dừng container
Bạn có thể khởi động container từ image Ubuntu đã tải:
docker run -it ubuntu bash
Lệnh này mở shell của container Ubuntu, cho phép thao tác bên trong.
Hiển thị danh sách container
Để kiểm tra các container đang chạy, sử dụng lệnh sau:
docker ps
Để hiển thị tất cả container (bao gồm cả đã dừng), thêm tùy chọn -a
.
docker ps -a
Dừng và xóa container
Để dừng container đang chạy:
docker stop [CONTAINER_ID hoặc tên]
Để xóa container không cần thiết:
docker rm [CONTAINER_ID hoặc tên]
Quản lý Docker image
Để xem danh sách image đã tải:
docker images
Để xóa image không dùng đến:
docker rmi [IMAGE_ID]
4. Tạo image tùy chỉnh với Dockerfile
Dockerfile là gì?
Dockerfile là tệp cấu hình dùng để tạo Docker image. Bạn có thể định nghĩa cách xây dựng image tùy ý cho môi trường phát triển hoặc ứng dụng riêng.
Cú pháp cơ bản của Dockerfile
Một Dockerfile thường có các lệnh sau:
Lệnh | Ý nghĩa |
---|---|
FROM | Chỉ định image nền tảng |
RUN | Chạy lệnh để xây dựng image |
COPY | Sao chép file vào container |
WORKDIR | Thiết lập thư mục làm việc |
CMD | Lệnh mặc định khi khởi động container |
ENTRYPOINT | Chỉ định entrypoint khi chạy container |
Tạo image tùy chỉnh dựa trên Ubuntu
Hãy làm theo các bước sau để tạo image tùy chỉnh dựa trên Ubuntu.
1. Tạo thư mục dự án
Tạo thư mục mới cho dự án và chuyển vào thư mục đó.
mkdir my-ubuntu-image
cd my-ubuntu-image
2. Tạo Dockerfile
Tạo tệp Dockerfile
trong thư mục và thêm nội dung sau:
# Image Ubuntu chính thức
FROM ubuntu:latest
# Thông tin maintainer (tuỳ chọn)
LABEL maintainer="your-email@example.com"
# Cập nhật và cài đặt các công cụ cơ bản
RUN apt update && apt install -y curl vim git
# Thiết lập thư mục làm việc
WORKDIR /workspace
# Lệnh mặc định khi chạy container
CMD ["bash"]
3. Build Docker image
Build image tùy chỉnh từ Dockerfile vừa tạo.
docker build -t my-ubuntu-image .
Tham số -t
để đặt tên cho image.
4. Kiểm tra image
Xem danh sách image vừa build.
docker images
5. Khởi động container
Khởi động container từ image tùy chỉnh đã build.
docker run -it my-ubuntu-image
Container này đã cài đặt sẵn curl
, vim
, v.v.
5. Cấu hình tiếng Nhật cho container Ubuntu
Image Ubuntu mặc định là tiếng Anh. Để sử dụng tiếng Nhật, bạn cần cài đặt thêm.
Cài đặt locale tiếng Nhật
Để hiển thị và nhập tiếng Nhật, cài đặt locale tiếng Nhật trên Ubuntu.
1. Cài các gói cần thiết
apt update
apt install -y language-pack-ja locales
2. Thiết lập locale
Thiết lập và áp dụng locale:
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
3. Áp dụng cấu hình
export LANG=ja_JP.UTF-8
Cấu hình nhập tiếng Nhật
Để nhập tiếng Nhật trên terminal, hãy cài ibus-mozc
.
apt install -y ibus-mozc
Nếu sử dụng môi trường GUI, hãy thêm các biến môi trường sau:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
Sử dụng ứng dụng GUI trong Docker
Để chạy ứng dụng GUI trong container, cần sử dụng X server trên host.
Cài đặt X server trên máy host và bật X11 khi chạy container:
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image
6. Tối ưu hóa và giảm kích thước Docker image
Tối ưu hóa Docker image giúp container khởi động nhanh và tiết kiệm dung lượng lưu trữ. Sau đây là một số phương pháp tối ưu.
Tạo image nhẹ dựa trên Ubuntu
ubuntu:latest
mặc định khá lớn. Bạn có thể dùng ubuntu:minimal
để giảm kích thước image.
FROM ubuntu:minimal
Hoặc sử dụng Alpine Linux – image cực nhẹ:
FROM alpine:latest
RUN apk add --no-cache bash curl
Cách này có thể giảm hàng trăm MB dung lượng image.
Xóa file không cần thiết để giảm kích thước
Sau khi cài đặt bằng apt-get
, hãy xóa cache để giảm dung lượng.
RUN apt update && apt install -y curl vim && apt clean && rm -rf /var/lib/apt/lists/*
Lệnh rm -rf /var/lib/apt/lists/*
giúp xóa file thừa.
Sử dụng Multi-stage build
Có thể chỉ dùng trình biên dịch ở giai đoạn build, còn image cuối cùng sẽ nhẹ hơn.
FROM ubuntu as builder
RUN apt update && apt install -y gcc
FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc
Cách này giúp loại bỏ các công cụ phát triển khỏi image cuối.
7. Thực hành: Phát triển ứng dụng với container Ubuntu
Dưới đây là ví dụ xây dựng môi trường phát triển thực tế với Ubuntu container.
Cài đặt môi trường phát triển Python
Để thiết lập môi trường Python trong container Ubuntu, tạo Dockerfile như sau:
FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
Build image và khởi động container:
docker build -t python-dev .
docker run -it python-dev
Bạn có thể chạy lệnh python3
để phát triển hoặc kiểm thử code.
Cài đặt môi trường phát triển Node.js
Để xây dựng môi trường Node.js, sử dụng Dockerfile sau:
FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
Cũng build và chạy tương tự:
docker build -t node-dev .
docker run -it node-dev
Bạn có thể sử dụng lệnh node
để phát triển ứng dụng JavaScript.
8. Câu hỏi thường gặp & Giải đáp sự cố
Trong quá trình sử dụng Docker, bạn có thể gặp nhiều lỗi khác nhau. Dưới đây là một số câu hỏi thường gặp và cách giải quyết.
Sự khác biệt giữa Docker và máy ảo
- Docker: Chia sẻ kernel với host, nhẹ và khởi động nhanh.
- Máy ảo (VM): Có hệ điều hành riêng, tiêu tốn nhiều tài nguyên và khởi động chậm hơn.
Docker tối ưu hóa tài nguyên, phù hợp cho môi trường phát triển và tự động hóa triển khai.
Lưu trữ dữ liệu trên container Ubuntu
Để giữ dữ liệu ngay cả khi container bị xóa, hãy sử dụng volume mount:
docker run -v my_data:/data ubuntu
Khi xóa container, dữ liệu vẫn nằm trong volume my_data
và có thể tái sử dụng.
Các lỗi phổ biến và cách khắc phục
1. Lỗi permission denied
Nếu gặp lỗi permission denied
khi chạy Docker, có thể user chưa thuộc nhóm docker
.
Chạy lệnh sau để thêm user vào nhóm docker
:
sudo usermod -aG docker $USER
Sau đó, đăng xuất và đăng nhập lại.
2. Lỗi image not found
Nếu image bị xóa khỏi Docker Hub, hãy chỉ định tag cụ thể khi tải.
docker pull ubuntu:22.04
Chỉ định phiên bản sẽ giúp bạn lấy đúng image cần thiết.