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
# yum install -y python-pip
# pip install docker-compose
# yum upgrade python*
$ docker-compose -v
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.