Android

Cách cài đặt và sử dụng docker compose trên Ubuntu 18.04

Установка Docker и Docker-compose на Ubuntu | уроки docker | #1.1

Установка Docker и Docker-compose на Ubuntu | уроки docker | #1.1

Mục lục:

Anonim

Docker Compose là một công cụ cho phép bạn xác định và quản lý các ứng dụng Docker đa container. Nó sử dụng tệp YAML để định cấu hình các dịch vụ, mạng và khối lượng của ứng dụng.

Sáng tác có thể được sử dụng cho các mục đích khác nhau. Các triển khai ứng dụng máy chủ duy nhất, thử nghiệm tự động và phát triển cục bộ là những trường hợp sử dụng phổ biến nhất cho Docker Compose.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt phiên bản Docker Compose mới nhất trên Ubuntu 18.04 và khám phá các khái niệm và lệnh cơ bản của Docker Compose.

Các hướng dẫn tương tự áp dụng cho Ubuntu 16.04 và mọi phân phối dựa trên Debian khác, bao gồm Debian, Linux Mint và Hệ điều hành cơ bản.

Điều kiện tiên quyết

Hãy chắc chắn rằng bạn đã đáp ứng các điều kiện tiên quyết sau đây trước khi tiếp tục với hướng dẫn này:

  • Đăng nhập với tư cách người dùng với quyền sudo. Đã cài đặt Docker theo hướng dẫn từ Cách cài đặt và sử dụng Docker trên Ubuntu 18.04.

Cài đặt Docker Compose trên Ubuntu

Gói cài đặt Docker Compose có sẵn trong kho chính thức của Ubuntu 18.04 nhưng có thể không phải lúc nào cũng là phiên bản mới nhất. Cách tiếp cận được đề xuất là cài đặt Docker Compose từ kho lưu trữ GitHub của Docker.

Tại thời điểm viết bài viết này, phiên bản ổn định mới nhất của Docker Compose là phiên bản 1.23.1 . Trước khi tải xuống nhị phân Compose, hãy truy cập trang phát hành kho lưu trữ Compose trên GitHub và kiểm tra xem có phiên bản mới nào để tải xuống không.

Để cài đặt Docker Compose trên Ubuntu 18.04, hãy làm theo các bước sau:

  1. Tải xuống Docker Soạn nhị phân vào thư mục /usr/local/bin với lệnh curl sau:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    Khi quá trình tải xuống hoàn tất, hãy áp dụng các quyền thực thi cho nhị phân Soạn:

    sudo chmod +x /usr/local/bin/docker-compose

    Xác minh cài đặt bằng cách chạy lệnh sau sẽ hiển thị phiên bản Soạn:

    docker-compose --version

    Đầu ra sẽ trông giống như thế này:

    docker-compose version 1.23.1, build b02f1306

Bắt đầu với Docker Compose

Trong phần này, chúng tôi sẽ trình bày cách sử dụng Docker Compose để thiết lập ứng dụng WordPress đa container trên Ubuntu 18.04.

Bắt đầu bằng cách tạo một thư mục dự án và điều hướng vào nó:

mkdir my_app cd my_app

Khởi chạy trình soạn thảo văn bản của bạn và tạo một tệp có tên docker-compose.yml trong thư mục dự án:

nano docker-compose.yml

Dán nội dung sau:

docker-compose.yml

version: '3.3' services: db: image: mysql:5.7 restart: always volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress wordpress: image: wordpress restart: always volumes: -./wp_data:/var/www/html ports: - "8080:80" environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_NAME: wordpress WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: password depends_on: - db volumes: db_data: wp_data:

Hãy phân tích từng dòng mã.

Trong dòng đầu tiên, chúng tôi đang chỉ định phiên bản tệp Soạn. Có một số phiên bản khác nhau của định dạng tệp Soạn với sự hỗ trợ cho các bản phát hành Docker cụ thể.

Tiếp theo, chúng tôi đang xác định hai dịch vụ, db wordpress . Mỗi dịch vụ chạy một hình ảnh và nó sẽ tạo ra một thùng chứa riêng khi docker-compose được chạy.

Dịch vụ db :

  • Sử dụng hình ảnh mysql:5.7 . Nếu hình ảnh không có trên hệ thống, nó sẽ được kéo nó từ kho lưu trữ công cộng Docker Hub. Sử dụng chính sách always khởi động lại để hướng dẫn bộ chứa luôn khởi động lại. Tạo một khối lượng db_data có tên để duy trì cơ sở dữ liệu. đối với hình ảnh mysql:5.7 .

Dịch vụ wordpress :

  • Sử dụng hình ảnh wordpress . Nếu hình ảnh không có trên hệ thống của bạn, Compose sẽ lấy nó từ kho lưu trữ công cộng Docker Hub. Sử dụng chính sách always khởi động lại để hướng dẫn bộ chứa luôn khởi động lại. wp_data thư mục wp_data trên máy chủ để /var/lib/mysql bên trong container. Chuyển tiếp cổng tiếp xúc 80 trên container sang cổng 8080 trên máy chủ. depends_on định các biến môi trường cho hình ảnh wordpress . Hướng dẫn phụ thuộc xác định sự phụ thuộc giữa hai dịch vụ. Trong ví dụ này, db sẽ được bắt đầu trước wordpress .

Từ thư mục dự án, khởi động ứng dụng WordPress bằng cách chạy lệnh sau:

docker-compose up

Đầu ra sẽ trông giống như thế này:

… wordpress_1 | AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations wordpress_1 | AH00094: Command line: 'apache2 -D FOREGROUND'

Compose sẽ kéo cả hai hình ảnh, bắt đầu hai container và tạo thư mục wp_data trong thư mục dự án của bạn.

Nhập http://0.0.0.0:8080/ trong trình duyệt của bạn và bạn sẽ thấy màn hình cài đặt Wordpress.

Tại thời điểm này, ứng dụng Wordpress đã hoạt động và bạn có thể bắt đầu làm việc với chủ đề hoặc plugin của mình.

Để dừng Soạn thảo, nhấn CTRL+C

Bạn cũng có thể bắt đầu Soạn trong chế độ tách rời bằng cách chuyển cờ -d .

docker-compose up -d

Để kiểm tra các dịch vụ đang chạy, hãy sử dụng tùy chọn ps :

docker-compose ps

Name Command State Ports ---------------------------------------------------------------------------------- my_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp my_app_wordpress_1 docker-entrypoint.sh apach… Up 0.0.0.0:8080->80/tcp

Khi Compose đang chạy ở chế độ tách rời để dừng dịch vụ sử dụng:

docker-compose stop

docker-compose down

Vượt qua công tắc --volumes cũng sẽ xóa khối lượng dữ liệu:

docker-compose down --volumes

Gỡ cài đặt Docker Soạn thảo

Nếu vì bất kỳ lý do nào bạn muốn gỡ cài đặt Docker Compose, bạn chỉ cần xóa tệp nhị phân bằng cách nhập:

sudo rm /usr/local/bin/docker-compose

Phần kết luận

Bạn đã học cách cài đặt và sử dụng Docker Compose trên Ubuntu 18.04.

Sử dụng Docker Compose có thể cải thiện đáng kể quy trình làm việc và năng suất của bạn. Bạn có thể xác định môi trường phát triển của mình với Docker Compose và chia sẻ nó với các cộng tác viên của dự án.

docker ubfox