將生成式 AI 應用程式容器化

先決條件

注意

GenAI 應用程式通常可以受益於 GPU 加速。目前 Docker Desktop 僅在 使用 WSL2 後端的 Windows 上支援 GPU 加速。Linux 使用者也可以使用原生安裝的 Docker 引擎 來存取 GPU 加速。

  • 您已安裝最新版本的 Docker Desktop,或者,如果您是 Linux 使用者並計劃使用 GPU 加速,則已安裝 Docker 引擎。Docker 會定期新增新功能,本指南的某些部分可能僅適用於最新版本的 Docker Desktop。
  • 您有一個 git 用戶端。本節中的範例使用基於命令列的 git 用戶端,但您可以使用任何用戶端。

概觀

本節將引導您使用 Docker Desktop 將生成式 AI (GenAI) 應用程式容器化。

注意

您可以在 GenAI 堆疊 範例應用程式中看到更多已容器化的 GenAI 應用程式。

取得範例應用程式

本指南中使用的範例應用程式是 GenAI 堆疊LangChainStreamlitOllamaNeo4j

現在,您的 docker-genai-sample 目錄中應該會有以下檔案。

初始化 Docker 資產

現在您已擁有應用程式,可以使用 docker init 建立必要的 Docker 資產來將應用程式容器化。在 docker-genai-sample 目錄中,執行 docker init 指令。docker init 提供一些預設配置,但您需要回答一些關於應用程式的問題。例如,此應用程式使用 Streamlit 來執行。請參考以下 docker init 範例,並在您的提示中使用相同的答案。

$ docker init
Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use? Python
? What version of Python do you want to use? 3.11.4
? What port do you want your app to listen on? 8000
? What is the command to run your app? streamlit run app.py --server.address=0.0.0.0 --server.port=8000

現在,您的 docker-genai-sample 目錄中應該會有以下內容。

├── docker-genai-sample/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── app.py
│ ├── chains.py
│ ├── compose.yaml
│ ├── env.example
│ ├── requirements.txt
│ ├── util.py
│ ├── Dockerfile
│ ├── LICENSE
│ ├── README.Docker.md
│ └── README.md

要深入瞭解 docker init 新增的檔案,請參閱以下內容。

執行應用程式

在終端機中,於 docker-genai-sample 目錄內執行以下指令。

$ docker compose up --build

Docker 建置並執行您的應用程式。根據您的網路連線,下載所有相依性可能需要幾分鐘的時間。當應用程式正在執行時,您會在終端機中看到如下訊息。

server-1  |   You can now view your Streamlit app in your browser.
server-1  |
server-1  |   URL: http://0.0.0.0:8000
server-1  |

開啟瀏覽器並在 http://localhost:8000摘要

在本節中,您學習了如何使用 Docker 將 GenAI 應用程式容器化並執行。

相關資訊

後續步驟

在下一節中,您將學習如何使用 Docker 在本機執行應用程式、資料庫和 LLM 服務。