Posted on: July 17, 2025
Tất cả các lệnh trong hướng dẫn này nên được chạy dưới người dùng không phải root. Nếu cần quyền root, lệnh sẽ có tiền tố sudo
.
Gói cài đặt Docker trong kho chính thức của Rocky Linux 9 có thể không phải là phiên bản mới nhất. Để có phiên bản mới nhất, cài từ kho chính thức của Docker.
Cập nhật cơ sở dữ liệu gói:
sudo dnf check-update
Thêm kho chính thức của Docker:
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Rocky Linux dựa trên CentOS nên sử dụng cùng kho.
Cài đặt Docker gồm ba gói:
sudo dnf install docker-ce docker-ce-cli containerd.io
Sau khi cài đặt, khởi động daemon Docker:
sudo systemctl start docker
Kiểm tra daemon Docker đang chạy:
sudo systemctl status docker
Kích hoạt khởi động Docker khi máy chủ khởi động lại:
sudo systemctl enable docker
Docker cung cấp cả dịch vụ daemon và công cụ dòng lệnh docker
.
Mặc định, chạy lệnh docker
cần quyền root (tiền tố sudo
). Người dùng trong nhóm docker
có thể chạy lệnh mà không cần sudo
.
Nếu chạy mà không có quyền hoặc không trong nhóm, sẽ báo lỗi:
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
Thêm người dùng của bạn vào nhóm docker:
sudo usermod -aG docker $(whoami)
Đăng xuất và đăng nhập lại để áp dụng thay đổi.
Nếu thêm người dùng khác vào nhóm docker:
sudo usermod -aG docker username
Trong hướng dẫn này mặc định bạn sẽ chạy lệnh docker
với người dùng thuộc nhóm docker, nếu không thì hãy dùng tiền tố sudo
.
Lệnh docker
gồm các tùy chọn, lệnh con và tham số như sau:
docker [option] [command] [arguments]
Để xem tất cả lệnh con, gõ:
docker
Danh sách lệnh con Docker (Phiên bản 1.11.1):
Để xem các tham số lệnh con dùng:
docker docker-subcommand --help
Thông tin hệ thống toàn cục:
docker info
Docker container chạy dựa trên Docker images. Mặc định các images được tải từ Docker Hub, một registry do Docker quản lý.
Kiểm tra truy cập Docker Hub và tải image thử:
docker run hello-world
Kết quả sẽ cho biết Docker hoạt động chính xác.
Tìm kiếm image trên Docker Hub:
docker search rockylinux
Kết quả trả về danh sách image phù hợp.
Cột OFFICIAL với giá trị OK nghĩa là image chính thức được hỗ trợ.
Tải image về máy:
docker pull rockylinux
Chạy container từ image đã tải:
docker run rockylinux
Hiển thị image đã tải:
docker images
Kết quả bao gồm repository, tag, ID image, ngày tạo và kích thước.
Images cũng có thể được chỉnh sửa và tạo thành image mới để đẩy lên registry.
hello-world
là container chạy rồi thoát ngay, bạn cũng có thể chạy container tương tác.
Chạy container Rocky Linux mới nhất với shell tương tác:
docker run -it rockylinux
Dấu nhắc lệnh sẽ đổi dạng:
[root@container_id /]#
Ví dụ, cài MariaDB server bên trong container:
dnf install mariadb-server
Bạn không cần sudo vì đã ở trong container với quyền root.
Thay đổi trong container chỉ tồn tại trong container đó. Hủy container sẽ mất thay đổi.
Để lưu trạng thái container thành image mới, thoát container:
exit
Sử dụng lệnh commit:
docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name
Ví dụ:
docker commit -m "added mariadb-server" -a "Sunday Ogwu-Chinuwa" 59839a1b7de2 sammy/rockylinux-mariadb
Lưu ý: image mới được lưu trên máy local.
Kiểm tra images hiện có:
docker images
Kết quả sẽ có image mới cùng với image gốc.
Image mới dùng để chạy container với MariaDB server đã cài sẵn.
Để xem các container đang chạy:
docker ps
Để xem tất cả container (đang chạy và không):
docker ps -a
Xem container tạo mới nhất:
docker ps -l
Dừng container đang chạy:
docker stop container-id
ID container lấy từ lệnh docker ps
.
Sau khi tạo image mới, bạn có thể chia sẻ nó trên Docker Hub hoặc registry khác.
Tạo tài khoản Docker Hub tại Docker Hub.
Đăng nhập vào Docker Hub:
docker login -u docker-registry-username
Sau khi xác thực thành công, đẩy image:
docker push docker-registry-username/docker-image-name
Quá trình đẩy có thể mất thời gian, sau khi thành công sẽ có thông báo.
Nếu gặp lỗi "unauthorized: authentication required" nghĩa là chưa đăng nhập, hãy đăng nhập và thử lại.
Docker còn rất nhiều tính năng nâng cao khác, nhưng bài viết này cung cấp đủ để bạn bắt đầu làm việc với Docker trên Rocky Linux 9.