Docker Compose: Cách cài đặt trên CentOS 7

302

Docker Compose là gì?

Docker Compose là một công cụ để chạy các ứng dụng multi-container Docker. Để cấu hình các dịch vụ của ứng dụng với Compose, chúng tôi sử dụng một tệp cấu hình và sau đó chỉ với một lệnh duy nhất, lập trình viên có thể dễ dàng khởi tạo và bắt đầu tất cả các dịch vụ được chỉ định trong cấu hình.

Docker Compose có thể hữu ích cho nhiều dự án khác nhau, bao gồm:

Phát triển: với các công cụ dòng lệnh Soạn thảo, chúng tôi tạo ra (và tương tác với) một môi trường riêng biệt sẽ lưu trữ ứng dụng đang được phát triển.

Bằng cách sử dụng tệp soạn thư, tài liệu dành cho nhà phát triển và định cấu hình tất cả các phụ thuộc dịch vụ của ứng dụng.

Thử nghiệm tự động: trường hợp này yêu cầu một môi trường để chạy thử nghiệm. Soạn thư cung cấp một cách thuận tiện để quản lý các môi trường thử nghiệm riêng biệt cho một bộ thử nghiệm. Môi trường đầy đủ được định nghĩa trong tệp Soạn thư.

Docker Compose đã được thực hiện trên mã nguồn hình, một dự án cộng đồng hiện chưa sử dụng.

Trong hướng dẫn này, chúng ta sẽ xem cách cài đặt Docker Compose trên máy chủ CentOS 7.

Cài đặt Docker

Trước hết, cách dễ nhất để cài đặt nó là tải xuống tập lệnh cài đặt do dự án Docker cung cấp:

$ wget -qO- https://get.docker.com/ | sh

Một bước bắt buộc là định cấu hình đúng người dùng cho Docker. Đặc biệt, thêm người dùng vào nhóm docker, bằng cách thực hiện lệnh sau:

# usermod -aG docker $(whoami)

Đăng xuất và đăng nhập lại để cập nhật danh sách nhóm người dùng.

Tiếp theo, kích hoạt Docker để khởi động cùng lúc khởi động máy tính:

# systemctl enable docker

Bắt đầu Docker:

# systemctl start docker

Cài đặt Docker Compose

Khi Docker đã được cài đặt, hãy cài đặt Docker Compose. Trước hết, cài đặt kho EPEL bằng cách thực hiện lệnh:

# yum install epel-release
Tiếp theo, cài đặt python-pip:
# yum install -y python-pip
Tại thời điểm này, bạn có thể cài đặt Docker Compose bằng cách thực thi lệnh pip:
# pip install docker-compose
Nâng cấp tất cả các gói Python trên CentOS 7:
# yum upgrade python*
Kiểm tra Docker Compose phiên bản với lệnh sau:
$ docker-compose -v
Đầu ra phải theo mẫu như thế này:
docker'compose version 1.16.1, build 6d1ac219

Thử nghiệm Docker Compose

Docker Hub bao gồm một hình ảnh Hello World cho mục đích trình diễn, minh họa cấu hình cần thiết để chạy một thùng chứa với Docker Compose.

Tạo một thư mục mới và di chuyển vào nó:

$ mkdir hello-world
$ cd hello-world

Tạo 1 file YAML mới:

$ $EDITOR docker-compose.yml

Copy đoạn mã dưới đây vào file đó:

techshare-compose-test:
 image: hello-world

Lưu ý: dòng đầu tiên được sử dụng như một phần của tên vùng chứa.

Lưu và thoát.
Chạy vùng chứa

Tiếp theo, thực hiện lệnh sau trong thư mục hello-world:

$ sudo docker-compose up

Nếu mọi thứ đều chính xác, đây sẽ là kết quả được hiển thị bởi Compose:

Pulling techshare-compose-test (hello-world:latest)...
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45gdjtu65rytycgklio7io7o997986wefdhgd26ff74f
Status: Downloaded newer image for hello-world:latest
Creating helloworld_techshare-compose-test_1 ...
Creating helloworld_techshare-compose-test_1 ... done
Attaching to helloworld_techshare-compose-test_1
techshare-compose-test_1 |
techshare-compose-test_1 | Hello from Docker!
techshare-compose-test_1 | This message shows that your installation appears to be working correctly.
techshare-compose-test_1 |
techshare-compose-test_1 | To generate this message, Docker took the following steps:
techshare-compose-test_1 | 1. The Docker client contacted the Docker daemon.
techshare-compose-test_1 | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
techshare-compose-test_1 | 3. The Docker daemon created a new container from that image which runs the
techshare-compose-test_1 | executable that produces the output you are currently reading.
techshare-compose-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
techshare-compose-test_1 | to your terminal.
techshare-compose-test_1 |
techshare-compose-test_1 | To try something more ambitious, you can run an Ubuntu container with:
techshare-compose-test_1 | $ docker run -it ubuntu bash
techshare-compose-test_1 |
techshare-compose-test_1 | Share images, automate workflows, and more with a free Docker ID:
techshare-compose-test_1 | https://cloud.docker.com/
techshare-compose-test_1 |
techshare-compose-test_1 | For more examples and ideas, visit:
techshare-compose-test_1 | https://docs.docker.com/engine/userguide/
techshare-compose-test_1 |
helloworld_techshare-compose-test_1 exited with code 0

Vùng chứa Docker chỉ chạy khi lệnh đang hoạt động, vì vậy vùng chứa sẽ dừng lại khi thử nghiệm kết thúc chạy.

Kết luận
Trong hướng dẫn này, chúng ta đã thấy cách cài đặt và kiểm tra Docker Compose trên máy chủ CentOS 7, và sử dụng tệp Compose theo định dạng YAML.