Để thay vì chúng ta xây dựng, hãy bắt đầu từng vùng chứa một với Docker, bây giờ chúng ta có thể sử dụng trình soạn thảo Docker Compose. Nó giúp đơn giản hóa và tăng tốc quá trình xây dựng ứng dụng sử dụng Docker. Trong bài viết này vinasupport. com sẽ mô tả cơ bản nhất về Docker Compose Show Docker soạn là gì?Docker Compose là một công cụ được sử dụng để định nghĩa và chạy nhiều ứng dụng Docker Container tại cùng một thời điểm. Bạn sử dụng cấu hình tệp YAML để xác định các dịch vụ của ứng dụng. Và với chỉ 1 lệnh duy nhất, các bạn sẽ tạo và khởi động tất cả các dịch vụ từ tệp cấu hình của mình Cài đặt Docker ComposeMặc dù nó không được cài đặt sẵn trong các hệ điều hành và chúng ta phải tiến hành cài đặt nó Trên Ubuntu/Debian sudo apt -y install docker-compose Hoặc cài đặt từ Github curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose Xác nhận phiên bản docker-compose [[email protected] ~]:~$ docker-compose --version docker-compose version 1.29.2, build unknown Hướng dẫn sử dụng docker soạnChúng ta cần tạo file docker-compose. yml để chứa các dịch vụ cho ứng dụng của chúng tôi Khởi tạo dịch vụ với Docker Compose Đây là 1 ví dụ về việc tạo 1 dịch vụ có tên là vinasupport sử dụng hình ảnh “hello-world”. Chỉnh sửa tệp docker-compose. yml as after vinasupport: image: hello-world Build và start container Nó sẽ tự động kéo hình ảnh từ repo về nếu chưa có và tự động tạo các vùng chứa đã được định nghĩa trong tệp docker-compose. yml docker-compose up Trường hợp bạn đã chỉnh sửa tệp thiết kế docker-compose. yml thì sử dụng thêm tham số -d để xây dựng lại các vùng chứa Docker là một công cụ chứa được sử dụng để tạo ra các môi trường ứng dụng bị cô lập, có thể tái tạo. Phần này trình bày chi tiết cách chứa Dự án Django, Postgres và Redis để phát triển cục bộ cùng với việc phân phối ngăn xếp lên đám mây thông qua Docker Compose và Docker Machine Tiền thưởng miễn phí. Nhấp vào đây để tải xuống khung dự án "Docker + Django, PostgreSQL & Redis" với mã nguồn đầy đủ mà bạn có thể sử dụng làm nền tảng cho các ứng dụng Python của riêng mình Cuối cùng, ngăn xếp sẽ bao gồm một vùng chứa riêng cho từng dịch vụ
cập nhật
Thiết lập cục bộCùng với Docker (v18. 09. 2) chúng tôi sẽ sử dụng -
Nếu bạn đang chạy phiên bản Mac OS X hoặc Windows cũ hơn, hãy tải xuống và cài đặt Hộp công cụ Docker để nhận tất cả các công cụ cần thiết. Nếu không, hãy làm theo hướng dẫn tại đây và tại đây để cài đặt Docker Compose và Machine tương ứng Sau khi hoàn tất, hãy kiểm tra cài đặt
Tiếp theo sao chép dự án từ kho lưu trữ hoặc tạo dự án của riêng bạn dựa trên cấu trúc dự án được tìm thấy trên kho lưu trữ
Bây giờ chúng tôi đã sẵn sàng để thiết lập và chạy các vùng chứa… Loại bỏ các quảng cáomáy dockerĐể khởi động Docker Machine, chỉ cần điều hướng đến thư mục gốc của dự án rồi chạy
Lệnh 8 thiết lập một “Máy” mới (được gọi là dev) để phát triển Docker. Về bản chất, nó đã khởi động một máy ảo với ứng dụng khách Docker đang chạy. Bây giờ chỉ cần trỏ Docker vào máy dev
Chạy lệnh sau để xem các Máy hiện đang chạy curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose0 Tiếp theo, hãy kích hoạt các thùng chứa bằng Docker Compose và khởi động Django, Postgres và Redis Docker SoạnChúng ta hãy xem docker-compose. tập tin yml curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose1 Ở đây, chúng tôi đang xác định bốn dịch vụ - web, nginx, postgres và redis
Bây giờ, để các vùng chứa chạy, hãy xây dựng các hình ảnh và sau đó khởi động các dịch vụ curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose2 Mẹo. Bạn thậm chí có thể chạy các lệnh trên được kết hợp trong một lệnh duy nhất curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose3 Lấy một tách cà phê. Hoặc đi bộ đường dài. Điều này sẽ mất một lúc trong lần đầu tiên bạn chạy nó. Các bản dựng tiếp theo chạy nhanh hơn nhiều vì Docker lưu trữ kết quả từ bản dựng đầu tiên Khi các dịch vụ đang chạy, chúng ta cần tạo quá trình di chuyển cơ sở dữ liệu curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose4 Lấy IP được liên kết với Docker Machine - 9 - rồi điều hướng đến IP đó trong trình duyệt của bạnTốt đẹp thử làm mới. Bạn sẽ thấy cập nhật bộ đếm. Về cơ bản, chúng tôi đang sử dụng Redis INCR để tăng sau mỗi yêu cầu được xử lý. Kiểm tra mã trong web/docker_django/apps/todo/views. py để biết thêm thông tin Một lần nữa, điều này tạo ra bốn dịch vụ, tất cả đều chạy trong các vùng chứa khác nhau curl -SL https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose chmod +x ~/.docker/cli-plugins/docker-compose6 Để xem các biến môi trường nào có sẵn cho dịch vụ web, hãy chạy 0Để xem nhật ký 1Bạn cũng có thể nhập Postgres Shell - vì chúng tôi đã chuyển tiếp cổng tới môi trường máy chủ trong docker-compose. yml - để thêm người dùng/vai trò cũng như cơ sở dữ liệu thông qua 2Sẵn sàng để triển khai? Loại bỏ các quảng cáotriển khaiVì vậy, với ứng dụng của chúng tôi đang chạy cục bộ, giờ đây chúng tôi có thể đẩy chính môi trường này tới nhà cung cấp dịch vụ lưu trữ đám mây với Docker Machine. Hãy triển khai hộp Digital Ocean Ghi chú. Nếu bạn muốn thực hiện một cách tiếp cận khác để triển khai ứng dụng Django của mình, hãy xem hướng dẫn hoặc khóa học video của Real Python về cách sử dụng Gunicorn và Nginx Sau khi bạn đăng ký Digital Ocean, hãy tạo Mã thông báo truy cập cá nhân, rồi chạy lệnh sau 3Quá trình này sẽ mất vài phút để cung cấp giọt và thiết lập Máy Docker mới có tên là sản xuất 4Bây giờ chúng tôi có hai Máy đang chạy, một máy cục bộ và một trên Digital Ocean 5Đặt sản xuất làm máy đang hoạt động và tải môi trường Docker vào trình bao 6Cuối cùng, hãy xây dựng lại ứng dụng Django trên đám mây. Lần này chúng ta cần sử dụng một tệp Docker Compose hơi khác một chút không gắn ổ đĩa vào vùng chứa. Tại sao? . Trong sản xuất, rõ ràng là không cần điều này 7
Lấy địa chỉ IP được liên kết với tài khoản Digital Ocean đó và xem nó trong trình duyệt. Nếu mọi việc suôn sẻ, bạn sẽ thấy ứng dụng của mình đang chạy. Phần kết luận
Tiền thưởng miễn phí. Nhấp vào đây để truy cập Hướng dẫn tài nguyên học tập Django miễn phí (PDF) cho bạn biết các mẹo và thủ thuật cũng như những cạm bẫy phổ biến cần tránh khi xây dựng ứng dụng web Python + Django Đánh dấu là đã hoàn thành 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Về Đội Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Florian Michael Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi |