Bình Python trong Docker

Binh Python Trong Docker



Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chứa ứng dụng Python Flask bằng Docker.

Containerization là một tính năng tuyệt vời cho phép các nhà phát triển của chúng tôi đóng gói một ứng dụng cùng với các phần phụ thuộc cần thiết vào một đơn vị duy nhất. Sau đó, chúng tôi có thể di chuyển vùng chứa và triển khai ứng dụng trên nhiều môi trường mà không cần lo lắng về khả năng tương thích.

Bình là gì?

Flask là một micro web framework tối giản và nhẹ dành cho Python. Nó cung cấp các tính năng và thư viện thiết yếu cần thiết để xây dựng ứng dụng web nhẹ bằng ngôn ngữ Python.







Flask tuân theo Giao diện cổng máy chủ web hoặc tiêu chuẩn WSGI, cho phép chúng tôi kết hợp thiết kế tối giản với mẫu linh hoạt có thể xử lý yêu cầu HTTP và các tính năng khác. Ví dụ: Flask hỗ trợ các tính năng web như định tuyến, cơ sở dữ liệu, v.v.



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

Để làm theo mã và lệnh được cung cấp trong hướng dẫn này, hãy đảm bảo rằng bạn có các công cụ sau:



  1. Trình thông dịch Python đã cài đặt trên máy của bạn (khuyến nghị phiên bản 3.11 trở lên)
  2. Công cụ Docker đã được cài đặt trên máy chủ (khuyến nghị phiên bản 23 trở lên)
  3. Trình soạn thảo văn bản hoặc IDE bạn chọn

Khi đã đáp ứng được các yêu cầu nhất định, chúng ta có thể tiếp tục với hướng dẫn này.





Tạo ứng dụng Flask

Như bạn có thể đoán, bước đầu tiên là tạo ứng dụng Python mà chúng tôi muốn chứa. Đối với trường hợp của chúng tôi, chúng tôi chứng minh điều đó bằng một ứng dụng tối giản in dòng chữ “xin chào thế giới”.

Tạo một thư mục mới để lưu trữ mã nguồn cho dự án của bạn và tạo một tệp Python có tên “app.py”.



Chỉnh sửa “app.py” bằng trình soạn thảo văn bản hoặc IDE yêu thích của bạn và thêm mã cho ứng dụng của bạn như sau:

từ bình giữ nhiệt nhập khẩu Bình giữ nhiệt

ứng dụng = Bình giữ nhiệt ( __tên__ )
@ ứng dụng. tuyến đường ( '/' )
chắc chắn Chào thế giới ( ) :
trở lại '

Xin chào thế giới!

'

Tạo một Dockerfile

Tiếp theo, chúng ta cần xác định các hướng dẫn cho phép chúng ta đóng gói ứng dụng dưới dạng Docker image. Chúng tôi sử dụng Dockerfile chứa tất cả các hướng dẫn và công cụ để thiết lập hình ảnh.

Trong cùng thư mục với “hello.py”, hãy tạo một tệp mới có tên “Dockerfile” không có phần mở rộng. Chạy lệnh sau:

$ touch Dockerfile

Chỉnh sửa tập tin và thêm mã như sau:

Sử dụng hình ảnh Python chính thức làm hình ảnh cơ sở.

TỪ trăn: 3.12 -rc-mỏng
WORKDIR/ứng dụng
SAO CHÉP . /ứng dụng
# Cài đặt bình
CHẠY cài đặt pip --no-cache- Bạn -r yêu cầu. txt
# Hiển thị cổng 5000 cho ứng dụng Flask
PHƠI RA 5000
# chạy ứng dụng Flask
CMD [ 'trăn' , 'app.py' ]

Dockerfile trước đó thực hiện các hoạt động sau:

  • Sử dụng hình ảnh mỏng Python 3.12 chính thức làm hình ảnh cơ sở
  • Đặt thư mục làm việc bên trong vùng chứa thành “/app”
  • Sao chép nội dung của thư mục dự án vào vùng chứa
  • Cài đặt Flask và bất kỳ phần phụ thuộc nào khác bằng cách chạy “cài đặt pip” bằng tệp “requirements.txt”
  • Hiển thị cổng 5000 cho ứng dụng Flask
  • Xác định lệnh để chạy ứng dụng Flask

Đảm bảo rằng tệp “requirements.txt” tồn tại trong thư mục dự án và thêm nội dung của tệp như sau:

Bình giữ nhiệt == 2.3.3

Trong trường hợp này, chúng tôi xác định rằng chúng tôi muốn cài đặt phiên bản Flask 2.3.3.

Xây dựng hình ảnh Docker

Bây giờ chúng ta đã có sẵn ứng dụng Flask và Dockerfile, chúng ta có thể tiến hành và xây dựng image bằng lệnh sau:

docker build -t jar-docker-app .

Đảm bảo rằng bạn đang ở trong thư mục dự án trước khi chạy lệnh trước đó. Bạn có thể thay thế jar-docker-app bằng tên mà bạn muốn gán cho hình ảnh của mình.

Chạy Docker Container

Với Docker image được xây dựng, chúng ta có thể chạy container dựa trên image bằng lệnh “docker run” như sau:

docker chạy -p 5000 : 5000 bình-docker-app

Điều này sẽ tạo một vùng chứa và ánh xạ cổng 5000 từ vùng chứa đó sang cổng 5000 trên hệ thống máy chủ.

Sau khi thực hiện, hãy mở trình duyệt và điều hướng đến http://localhost:5000 .

Bạn sẽ thấy thông báo “Xin chào, Thế giới!” tin nhắn từ ứng dụng Flask.

Phần kết luận

Trong hướng dẫn này, bạn đã học cách chứa một ứng dụng Python Flask đơn giản bằng Docker.