Tìm kiếm trang web

Cài đặt Docker và Compose trên CentOS 8 | RHEL 8


Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn các bước cài đặt Docker CE trên CentOS 8 | RHEL 8. Chúng tôi cũng sẽ đề cập đến cách cài đặt Docker Compose trên RHEL 8/CentOS 8 Linux. Docker không được hỗ trợ chính thức trên RHEL 8 vì nó đã được thay thế bằng các công cụ của Red Hat – buildah và podman. Bạn có thể tìm hiểu thêm về các tính năng mới được bổ sung trong phiên bản RHEL 8 Linux.

  • Các Tính Năng Mới & Đánh Giá Red Hat Enterprise Linux 8 (RHEL 8)

Nhưng nếu bạn sử dụng Docker hàng ngày và không thể chuyển sang buildah và podman ngay lập tức thì sao? Đừng lo vì vẫn có cách để cài đặt Docker và Docker Compose trên RHEL 8/CentOS 8. Docker là một công cụ cho phép bạn tạo, triển khai và chạy các ứng dụng của mình trong các container. Container cho phép Nhà phát triển đóng gói một ứng dụng cùng với các phụ thuộc của nó và gửi đi như một gói duy nhất. Container thường được sử dụng trong môi trường Microservices.

Các thành phần/Thuật ngữ của Docker

Có một số thuật ngữ đặc thù của Docker mà chúng ta cần làm rõ trước khi đi vào các ví dụ về cài đặt và sử dụng. Dưới đây là những thuật ngữ thường được sử dụng trong hệ sinh thái Docker.

  • Docker daemon: Đây cũng được gọi là Docker Engine, là một tiến trình chạy ngầm trên hệ thống máy chủ chịu trách nhiệm xây dựng và chạy các container.
  • Docker Client: Đây là một công cụ dòng lệnh được người dùng sử dụng để tương tác với Docker daemon.
  • Docker Image: Một image là một tệp không thể thay đổi, bản chất là một bức ảnh chụp nhanh của một container. Một docker image có hệ thống tệp và các phụ thuộc ứng dụng cần thiết để chạy các ứng dụng.
  • Container Docker: Đây là một bản chạy của một hình ảnh Docker với ứng dụng và các phụ thuộc của nó. Mỗi container có một ID tiến trình duy nhất và được tách biệt với các container khác. Điều duy nhất mà các container chia sẻ là Kernel.
  • Docker registry: Đây là một ứng dụng chịu trách nhiệm quản lý việc lưu trữ và phân phối các hình ảnh container Docker. Nó có thể là riêng tư hoặc công khai.

Cài đặt Docker CE trên CentOS 8 | RHEL 8

Cho đến nay, chúng ta đã tìm hiểu về giới thiệu Docker và các thuật ngữ liên quan. Chúng ta nên sẵn sàng để cài đặt Docker CE trên RHEL 8/CentOS 8. Chúng ta sẽ bắt đầu với việc cài đặt Docker, sau đó là Docker Compose.

Có hai phiên bản Docker có sẵn.

  • Phiên bản Cộng đồng (CE): lý tưởng cho các nhà phát triển cá nhân và các nhóm nhỏ muốn bắt đầu với Docker và thử nghiệm các ứng dụng dựa trên container.
  • Bản Doanh nghiệp (EE): Được thiết kế cho phát triển doanh nghiệp và các nhóm CNTT, những người xây dựng, triển khai và vận hành các ứng dụng quan trọng cho doanh nghiệp trên quy mô sản xuất.

Docker Enterprise Edition yêu cầu một giấy phép đang hoạt động để sử dụng. Trong hướng dẫn này, chúng ta sẽ cài đặt Docker CE trên RHEL 8. Hãy thêm kho lưu trữ Docker trước khi chúng ta có thể cài đặt nó.

### CentOS 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

### RHEL 8 ###
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo

Lệnh này sẽ tải tệp kho Docker về /etc/yum.repos.d/docker-ce.repo. Hãy cập nhật bộ nhớ đệm chỉ mục RPM.

### CentOS 8 ###
$ sudo yum makecache 
CentOS Linux 8 - AppStream                                                                                                                                             23 kB/s | 4.3 kB     00:00
CentOS Linux 8 - BaseOS                                                                                                                                                20 kB/s | 3.9 kB     00:00
CentOS Linux 8 - Extras                                                                                                                                               9.2 kB/s | 1.5 kB     00:00
Docker CE Stable - x86_64                                                                                                                                             291 kB/s |  19 kB     00:00
DigitalOcean Droplet Agent                                                                                                                                             51 kB/s | 3.3 kB     00:00
Metadata cache created.

### RHEL 8 ###
$ sudo yum makecache 
Updating Subscription Management repositories.
Docker CE Stable - x86_64                                                                                                                                             14 kB/s | 3.8 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)                                                                                                              33 kB/s | 2.8 kB     00:00    
Red Hat Ansible Engine 2.8 for RHEL 8 x86_64 (RPMs)                                                                                                                   29 kB/s | 2.4 kB     00:00    
Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)                                                                                                                 30 kB/s | 2.4 kB     00:00    
Red Hat Satellite Tools 6.6 for RHEL 8 x86_64 (RPMs)                                                                                                                  29 kB/s | 2.1 kB     00:00    
Metadata cache created.

Bạn có thể cần gỡ cài đặt tất cả các phiên bản Docker cũ cùng với các phụ thuộc liên quan. Ngoài ra, hãy gỡ cài đặt Podman và các phụ thuộc liên quan nếu đã được cài đặt.

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine \
                  podman \
                  runc

Cuối cùng, cài đặt Docker CE bằng cách chạy lệnh dưới đây trong terminal của bạn.

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Nếu bạn gặp sự cố phụ thuộc với Podman, hãy cho phép xóa.

sudo yum install docker-ce --allowerasing

Đồng ý cài đặt bằng cách nhấn phím y trên bàn phím của bạn:

...
Transaction Summary
================================================================================================================================================================================================
Install  12 Packages

Total download size: 93 M
Installed size: 389 M
Is this ok [y/N]: y

Cũng nhập khóa GPG.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                            51 MB/s |  93 MB     00:01
Docker CE Stable - x86_64                                                                                                                                        44 kB/s | 1.6 kB     00:00
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <[email >"
 Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y

Khởi động và bật dịch vụ Docker để tự động chạy khi khởi động.

$ sudo systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.

Trạng thái dịch vụ Docker nên hiển thị đang chạy.

$ systemctl status  docker

Nhóm docker đã được tạo, nhưng không có người dùng nào được thêm vào nhóm. Thêm người dùng của bạn vào nhóm này để chạy các lệnh docker mà không cần sudo

$ sudo usermod -aG docker $USER
$ newgrp docker
$ id $USER
uid=1000(jmutai) gid=1000(jmutai) groups=1000(jmutai),10(wheel),984(docker)

Đăng xuất và đăng nhập lại để sử dụng Docker mà không cần sudo. Phiên bản Docker đã cài đặt có thể được kiểm tra bằng:

docker version

Kéo hình ảnh Docker

Bước cuối cùng là kiểm tra cài đặt của bạn bằng cách tải xuống một container docker thử nghiệm.

$ docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
8e402f1a9c57: Pull complete 
Digest: sha256:644fcb1a676b5165371437feaa922943aaf7afcfa8bfee4472f6860aad1ef2a0
Status: Downloaded newer image for alpine:latest

$ docker pull hello-world
Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Liệt kê các hình ảnh đã tải xuống.

$ docker images
 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
 alpine              latest              5cb3aa00f899        2 days ago          5.53MB
 hello-world         latest              fce289e99eb9        2 months ago        1.84kB

Xác minh rằng Docker CE hoạt động đúng bằng cách chạy container alpine từ hình ảnh đã tải xuống.

$ docker run -it --rm alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/main]
v3.15.4-87-g89e29fdace [http://dl-cdn.alpinelinux.org/alpine/v3.15/community]
OK: 9754 distinct packages available
/ # exit

Chạy container Hello world

$ docker run -it --rm hello-world

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

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Cài đặt Docker Compose trên CentOS 8 | CentOS 8

Chúng ta đã cài đặt và chạy Docker, bây giờ hãy chuyển sang Docker Compose. Docker Compose là một công cụ được sử dụng để định nghĩa và chạy các ứng dụng Docker nhiều container.

Các dịch vụ ứng dụng được cấu hình bằng tệp Compose. Khác với việc chạy các lệnh docker, chỉ cần một lệnh duy nhất để tạo và khởi động tất cả các dịch vụ từ cấu hình của bạn. Docker Compose là một công cụ tuyệt vời cho môi trường phát triển, kiểm thử và chuẩn bị, cũng như các quy trình làm việc CI.

Hãy theo hướng dẫn riêng của chúng tôi về cách cài đặt Docker Compose phiên bản mới nhất trên Linux.

  • Cài đặt Docker Compose trên Linux

Để giữ cho hướng dẫn này ngắn gọn, chúng ta sẽ không đi sâu vào cách sử dụng Docker compose. Tôi khuyên bạn nên xem qua tài liệu chính thức của Docker và tài liệu Docker Compose để tìm hiểu thêm.

Cài đặt Giao diện Docker – Tùy chọn

Nếu bạn cần một giao diện quản lý Docker cho phép bạn dễ dàng quản lý các máy chủ và container Docker khác nhau, hãy thử sử dụng Portainer. Nó dễ cài đặt và sử dụng.

  • Cách cài đặt Portainer - trình quản lý giao diện Docker

Giám sát các container Docker

Việc giám sát các container Docker có thể thực hiện bằng cách sử dụng các công cụ giám sát như Netdata, Ctop hoặc Prometheus và Grafana. Các hướng dẫn dưới đây có thể hữu ích.

  • Ctop – Lệnh top để hiển thị số liệu của container
  • Cách Cài Đặt Netdata trên RHEL 8/CentOS 8
  • Cài đặt kho Docker Harbor trên Linux