NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
23/05/2023
Lượt xem

Hướng dẫn cài đặt và sử dụng Docker trên CentOS 7

23/05/2023
24 phút đọc
Lượt xem

Đánh giá

5/5 - (120 bình chọn)

Thông thường sẽ có hai phương pháp để cài đặt và sử dụng Docker trên CentOS 7. Phương pháp đầu tiên liên quan đến cài đặt trên phiên bản hiện có của hệ điều hành. Phương pháp thứ hai liên quan đến khởi chạy một server với công cụ Docker Machine để tự động cài đặt Docker. Trong bài viết này, bạn sẽ được học cách cài đặt và sử dụng Docker trên phiên bản hiện có của CentOS 7.

Yêu cầu để cài đặt và sử dụng Docker trên CentOS 7

Để thực hiện được các bước trong bài viết thì bạn cần có đủ 2 yêu cầu sau:

  • Máy chủ CentOS 7 64-bit.
  • Người dùng không phải là root nhưng có quyền sudo. 

Lưu ý: Docker yêu cầu phiên bản CentOS 7 64-bit và phiên bản kernel bằng hoặc lớn hơn 3.10. Phiên bản CentOS 7 64-bit mặc định đã đáp ứng các yêu cầu này.

Cài đặt Docker trên VPS là một gợi ý hoàn hảo cho những ai muốn triển khai các ứng dụng trên môi trường ảo hóa. Đặc biệt, nó còn có thể giúp bạn quản lý và triển khai các ứng dụng một cách tối ưu hơn. Hiện tại Vietnix cung cấp dịch vụ VPS tốc độ cao với mức giá phải chăng, giúp bạn chủ động cài đặt và quản lý ứng dụng. Các gói VPS tính đến thời điểm hiện tại bao gồm: VPS Giá Rẻ, Cloud Server, VPS Cao Cấp, VPS GPU và VPS NVMe.

Nhanh tay liên hệ Vietnix để được tư vấn gói VPS phù hợp với nhu cầu ngay hôm nay!

Bước 1 – Cài đặt Docker

Bản cài đặt Docker có sẵn trong kho lưu trữ của CentOS 7 nhưng có thể không phải là phiên bản mới nhất. Để có phiên bản mới nhất, bạn hãy cài đặt Docker từ kho lưu trữ chính thức của Docker.

Tuy nhiên, trước tiên bạn cần cập nhật package database:

sudo yum check-update

Chạy lệnh sau để thêm kho lưu trữ chính thức của Docker, tải xuống phiên bản mới nhất của Docker và tiến hành cài đặt:

curl -fsSL https://get.docker.com/ | sh

Sau khi cài đặt hoàn tất, khởi động daemon Docker:

sudo systemctl start docker

Xác minh rằng Docker đang chạy bằng lệnh sau:

sudo systemctl status docker

Output như sau cho thấy dịch vụ đang hoạt động và chạy:

Output ● docker.service - Docker Application Container Engine    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)    Active: active (running) since Sun 2016-05-01 06:53:52 CDT; 1 weeks 3 days ago      Docs: https://docs.docker.com  Main PID: 749 (docker)

Cuối cùng, hãy đảm bảo rằng Docker sẽ khởi động mỗi khi khởi động lại máy chủ bằng lệnh:/

sudo systemctl enable docker

Việc cài đặt Docker không chỉ cung cấp cho bạn dịch vụ Docker (daemon) mà còn cung cấp cho bạn tiện ích command line docker hay Docker client. Bạn sẽ được tìm hiểu cách sử dụng lệnh docker sau trong bài viết này.

Bước 2 – Thực thi lệnh Docker mà không cần dùng Sudo (Tùy chọn)

Mặc định, khi chạy lệnh docker yêu cầu quyền root thì bạn phải thêm tiền tố sudo vào trước lệnh. Lệnh có thể được chạy bởi một người dùng trong nhóm docker được tự động tạo ra trong quá trình cài đặt Docker. Nếu bạn cố gắng chạy lệnh docker mà không thêm tiền tố sudo hoặc không thuộc nhóm docker, bạn sẽ nhận được output như sau:

Output docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?. See 'docker run --help'.

Nếu bạn muốn tránh phải gõ sudo mỗi khi chạy lệnh docker, hãy thêm username của bạn vào nhóm docker:

sudo usermod -aG docker $(whoami)

Nếu bạn cần thêm một người dùng vào nhóm docker mà bạn không đang đăng nhập với tên đó thì hãy khai báo tên đó rõ ràng bằng cách sử dụng:

sudo usermod -aG docker username

Bạn sẽ chạy lệnh docker như một người dùng trong nhóm docker trong phần còn lại của bài viết. Nếu bạn không muốn thì có thể thêm sudo vào trước các lệnh.

Bước 3 – Sử dụng lệnh Docker

Với bản Docker đã được cài đặt và hoạt động, bạn hãy làm quen với tiện ích command line. Sử dụng docker bao gồm việc truyền một chuỗi các tùy chọn và các lệnh con theo sau là các đối số. Cú pháp có dạng như sau:

docker [option] [command] [arguments]

Để xem tất cả các lệnh con có sẵn, bạn hãy gõ:

docker

Kể từ Docker 1.11.1, danh sách đầy đủ các lệnh con có sẵn bao gồm:

Output      attach             Attach to a running container     build               Build an image from a Dockerfile     commit           Create a new image from a container's changes     cp                   Copy files/folders between a container and the local filesystem     create             Create a new container     diff                  Inspect changes on a container's filesystem     events            Get real time events from the server     exec               Run a command in a running container     export            Export a container's filesystem as a tar archive     history            Show the history of an image     images           List images     import             Import the contents from a tarball to create a filesystem image     info                 Display system-wide information     inspect           Return low-level information on a container or image     kill                   Kill a running container     load                Load an image from a tar archive or STDIN     login               Log in to a Docker registry     logout             Log out from a Docker registry     logs                Fetch the logs of a container     network          Manage Docker networks     pause             Pause all processes within a container     port                 List port mappings or a specific mapping for the CONTAINER     ps                   List containers     pull                 Pull an image or a repository from a registry     push               Push an image or a repository to a registry     rename           Rename a container     restart             Restart a container     rm                   Remove one or more containers     rmi                  Remove one or more images     run                  Run a command in a new container     save                Save one or more images to a tar archive     search             Search the Docker Hub for images     start                Start one or more stopped containers     stats               Display a live stream of container(s) resource usage statistics     stop                 Stop a running container     tag                  Tag an image into a repository     top                  Display the running processes of a container     unpause         Unpause all processes within a container     update            Update configuration of one or more containers     version           Show the Docker version information     volume           Manage Docker volumes     wait                Block until a container stops, then print its exit code

Để xem các switch có sẵn cho một lệnh cụ thể, gõ lệnh sau:

docker docker-subcommand --help

Để xem thông tin toàn bộ hệ thống, sử dụng lệnh:/

docker info

Bước 4 – Làm việc với Docker Images

Docker container được chạy từ Docker images. Mặc định, Docker sẽ tải các image này từ Docker Hub. Bất cứ ai cũng có thể xây dựng và đăng tải Docker images của mình lên Docker Hub. Vì vậy hầu hết các ứng dụng và bản phân phối Linux bạn cần để chạy Docker containers đều có các image được lưu trữ trên Docker Hub.

Để kiểm tra xem bạn có thể truy cập và tải xuống các image từ Docker Hub hay không, hãy gõ lệnh:/

docker run hello-world

Output có các thông tin như sau cho thấy Docker đang hoạt động bình thường:

Output Hello from Docker. This message shows that your installation appears to be working correctly. ...

Bạn có thể tìm kiếm các image có sẵn trên Docker Hub bằng cách sử dụng lệnh docker với subcommand là search. Ví dụ, để tìm kiếm image CentOS, bạn gõ lệnh:

docker search centos

Script này sẽ duyệt qua Docker Hub và trả về một danh sách các image có tên phù hợp với chuỗi tìm kiếm. Trong trường hợp này, output sẽ tương tự như sau:

Output NAME                                            DESCRIPTION                                                          STARS     OFFICIAL   AUTOMATED centos                                           The official build of CentOS.                                   2224        [OK]        jdeathe/centos-ssh                        CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...    22                             [OK] jdeathe/centos-ssh-apache-php    CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...     17                             [OK] million12/centos-supervisor          Base CentOS-7 with supervisord launcher, h...      11                             [OK] nimmis/java-centos                       This is docker images of CentOS 7 with dif...         10                             [OK] torusware/speedus-centos            Always updated official CentOS docker imag...      8                               [OK] nickistre/centos-lamp                    LAMP on centos setup                                            3                               [OK]  ...

Trong cột OFFICIAL, OK chỉ ra một image được xây dựng và được hỗ trợ bởi công ty đứng sau dự án. Sau khi bạn đã xác định được image mà bạn muốn sử dụng, bạn có thể tải nó về máy tính của mình bằng cách sử dụng lệnh pull như sau:

docker pull centos

Sau khi image đã được tải xuống, bạn có thể chạy một container bằng cách sử dụng image đã tải với lệnh run. Nếu image chưa được tải xuống khi docker được thực thi với lệnh run, Docker client sẽ tải xuống image trước sau đó chạy một container để sử dụng nó:

docker run centos

Để xem các image đã được tải vào máy tính của bạn, nhập lệnh sau đây:

docker images

Output sẽ trông giống như sau:

[secondary_lable Output] REPOSITORY          TAG                 IMAGE ID               CREATED               SIZE centos                   latest              778a53015523       5 weeks ago         196.7 MB hello-world            latest              94df4f0ce8a4         2 weeks ago         967 B

Các image mà bạn sử dụng để chạy các container có thể được sửa đổi và sử dụng để tạo ra các image mới. Sau đó có thể được upload lên Docker Hub hoặc các kho Docker khác.

Bước 5 – Chạy một Docker Container

Container hello-world mà bạn đã chạy ở bước trước là một ví dụ về một container chạy và thoát sau khi phát ra một tin nhắn kiểm tra. Tuy nhiên, container hữu ích hơn thế và chúng có thể tương tác. Chúng tương tự như các máy ảo nhưng tốn ít tài nguyên hơn.

Ví dụ, bạn hãy chạy một container bằng cách sử dụng image CentOS mới nhất. Kết hợp giữa các tùy chọn -i và -t sẽ cho bạn truy cập shell tương tác vào container:

docker run -it centos

Command prompt của bạn sẽ thay đổi để phản ánh về việc bạn đang làm việc bên trong container:

Output [root@59839a1b7de2 /]#

Lưu ý: Chú ý đến ID của container trong dấu nhắc lệnh. Trong ví dụ trên, đó là 59839a1b7de2.

Bây giờ bạn có thể chạy bất kỳ lệnh nào bên trong container. Ví dụ, hãy cài đặt server MariaDB trong container đang chạy. Không cần thêm sudo vào bất kỳ lệnh nào với vì bạn đang hoạt động bên trong container với đặc quyền root:

yum install mariadb-server

Bước 6 – Lưu các thay đổi trong một container thành một Docker Image

Khi khởi động một Docker image, bạn có thể tạo, sửa đổi và xóa file giống như bạn làm với một máy ảo. Những thay đổi mà bạn thực hiện chỉ áp dụng cho container đó. Bạn có thể khởi động và tắt container. Nhưng khi bạn xóa container đó bằng lệnh docker rm, các thay đổi sẽ mất mãi.

Bước này sẽ hướng dẫn bạn cách lưu trạng thái của container như một Docker image mới.

Sau khi cài đặt MariaDB server trong container CentOS, bạn có một container đang chạy dựa trên một image. Nhưng container này khác với image bạn đã sử dụng để tạo. Để lưu trạng thái của container như một image mới, trước tiên bạn cần thoát khỏi đó:

exit

Sau đó commit các thay đổi vào một instance mới của Docker image bằng lệnh sau. Tùy chọn -m dùng để đặt thông báo commit giúp bạn và những người khác biết các thay đổi bạn đã thực hiện. -a được sử dụng để chỉ định tác giả.

Container ID là mã bạn đã ghi chú trước đó khi bạn bắt đầu phiên tương tác docker. Trừ khi bạn tạo các kho lưu trữ khác trên Docker Hub, thường thì kho lưu trữ là tên người dùng của bạn trên Docker Hub:

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 finid/centos-mariadb

Lưu ý: Khi bạn commit một image, image mới được lưu trên máy tính của bạn. Sau này, bạn sẽ được hướng cách đẩy một image lên Docker registry như Docker Hub để có thể được truy cập và sử dụng bởi nhiều người dùng.

Sau khi hoàn tất, việc liệt kê Docker image trên máy tính của bạn sẽ hiển thị cả image mới và cũ:

docker images

Output sẽ có dạng như sau:

Output REPOSITORY                TAG                 IMAGE ID                 CREATED               SIZE finid/centos-mariadb   latest              23390430ec73        6 seconds ago       424.6 MB centos                         latest              778a53015523        5 weeks ago          196.7 MB hello-world                  latest              94df4f0ce8a4          2 weeks ago          967 B

Trong ví dụ trên, centos-mariadb là image mới được dẫn xuất từ image CentOS đã có trên Docker Hub. Sự khác biệt về kích thước cho thấy có nhiều thay đổi giữa các bản image. Trong ví dụ này, sự thay đổi là MariaDB server đã được cài đặt. Vì vậy, khi bạn cần chạy một container sử dụng CentOS với MariaDB server được cài đặt trong lần tới, bạn chỉ cần sử dụng image mới này. Image cũng có thể được xây dựng từ Dockerfile. Tuy nhiên đó là một quá trình rất phức tạp không thuộc phạm vi của bài viết này và sẽ được đề cập vào các phần hướng dẫn khác.

Bước 7 – Liệt kê các container Docker

Sau khi sử dụng Docker một thời gian thì sẽ có nhiều container đang hoạt động và không hoạt động trên máy tính của bạn. Để xem các container đang hoạt động, bạn hãy sử dụng lệnh:

docker ps

Bạn sẽ thấy output tương tự như sau:

Output CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES f7c79cc556dd        centos              "/bin/bash"         3 hours ago         Up 3 hours                              silly_spence

Để xem tất cả các container đang hoạt động và không hoạt động, thêm chuyển đổi -a vào phía sau:

docker ps -a

Để xem container mới nhất bạn đã tạo, hãy thêm chuyển đổi -l:

docker ps -l

Dừng container đang chạy hoặc đang hoạt động đơn giản bằng cách gõ:

docker stop container-id

container-id có thể được tìm thấy trong output của lệnh docker ps.

Bước 8 – Đẩy Docker Images lên Docker Repository

Bước tiếp theo sau khi tạo một image mới từ image hiện có là chia sẻ đến với một số người bạn, Docker Hub hoặc Docker Repository mà bạn có quyền truy cập. Để đẩy một image lên Docker Hub hoặc Docker Repository, bạn phải có một tài khoản ở đó.

Bước này sẽ chỉ bạn cách đẩy một Docker image lên Docker Hub.

Đầu tiên bạn cần tạo một tài khoản trên Docker Hub. Sau đó, để đẩy image của bạn lên, hãy đăng nhập vào Docker Hub. Bạn sẽ được nhắc nhập thông tin xác thực:

docker login -u docker-registry-username

Thực hiện nhập thông tin xác thực. Sau đó, bạn có thể đẩy image của mình bằng cách sử dụng lệnh:

docker push docker-registry-username/docker-image-name

Khi hoàn tất, output sẽ có dạng như sau:

Output The push refers to a repository [docker.io/finid/centos-mariadb] 670194edfaf5: Pushed  5f70bf18a086: Mounted from library/centos  6a6c96337be1: Mounted from library/centos  ...

Sau khi đẩy image lên kho chứa thì image sẽ được liệt kê trên bảng điều khiển tài khoản của bạn như trong hình ảnh dưới đây.

Bảng hiển thị image trong kho chứa
Bảng hiển thị image trong kho chứa

Nếu một lần đẩy image gặp phải lỗi như sau thì bạn có thể chưa đăng nhập:

Output The push refers to a repository [docker.io/finid/centos-mariadb] e3fbbfb44187:   Preparing 5f70bf18a086:   Preparing a3b5c80a4eba:  Preparing 7f18b442972b:  Preparing 3ce512daaf78:  Preparing 7aae4540b42d: Waiting unauthorized:    authentication required

Hãy đăng nhập, sau đó thử lại việc đẩy image.

Lời kết

Với bài viết trên bạn đã học được cách cài đặt và sử dụng Docker trên CentOS 7. Hy vọng với nội dung trong bài viết đã giúp bạn bạn bắt đầu làm việc với Docker một cách dễ dàng. Theo dõi Vietnix để học hỏi thêm nhiều kiến thức bổ ích nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG