跳至主要内容

在 Glows.ai 上傳自訂 Docker 鏡像

本教學將帶你一步步學會如何把本地 Docker 鏡像上傳到 Glows.ai 使用,從鏡像準備、打包到上傳和創建實例完整示範。

製作 Docker image tar 包​

要讓鏡像在 Glows.ai 正常運行,需注意以下事項:

  • 鏡像的 ENTRYPOINT 需要保持運行(容器才不會自動退出)
  • 安裝並啟動 SSH 服務(方便訪問實例)

設置說明​

建議單獨寫一個 .sh 腳本作為 ENTRYPOINT,例如 run_glowsai.sh,裡面加入容器開機自啟的指令(SSH 服務或自定義服務等)。以下是範例:

#!/bin/bash
# Start SSH service
echo "Starting SSH service..."
/usr/sbin/sshd -E /root/.ssh/sshd_running.log

# Custom Command
echo "hello glowsai" > /hello.txt

# Keep the container running
echo "Container running..."
tail -f /dev/null

同時,在 Dockerfile 中加入 SSH 安裝配置及 ENTRYPOINT 設定:

# Install and configure SSH server
RUN apt-get update && apt-get install -y openssh-server && \
mkdir /var/run/sshd /root/.ssh && sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Copy and set permissions for the start script
COPY run_glowsai.sh /usr/bin/
RUN chmod +x /usr/bin/run_glowsai.sh
EXPOSE 22
# Set entrypoint
ENTRYPOINT ["/usr/bin/run_glowsai.sh"]

實際操作​

如果你要上傳本地鏡像,請先確認鏡像內已安裝並啟動 SSH,且 ENTRYPOINT 可保持運行,否則依照以下步驟操作。

設定 run_glowsai.sh

  1. 新建一個目錄 new_images,並在目錄下創建 run_glowsai.sh,內容如下:
#!/bin/bash
# Start SSH service
echo "Starting SSH service..."
/usr/sbin/sshd -E /root/.ssh/sshd_running.log

# Custom Command
echo "hello glowsai" > /hello.txt

# Keep the container running
echo "Container running..."
tail -f /dev/null

注意:# Custom Command 可寫入你需要開機自啟的指令,其他部分不要修改,以免啟動失敗。

  1. 創建 dockerfile,輸入以下內容:
# Set the base image
FROM oldwatch/tmp-images:huggingface-text-embeddings-inference_1_8

# Install and configure SSH server
RUN apt-get update && apt-get install -y openssh-server && \
mkdir /var/run/sshd /root/.ssh && sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config && \
sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Copy and set permissions for the start script
COPY run_glowsai.sh /usr/bin/
RUN chmod +x /usr/bin/run_glowsai.sh
EXPOSE 22
# Set entrypoint
ENTRYPOINT ["/usr/bin/run_glowsai.sh"]
  1. 在目錄下執行以下指令 build 新鏡像:
docker build -t new_images:huggingface-text-embeddings-inference_1_8 .

Build 成功示意

  1. build 成功後,使用 docker save 將鏡像打包成 tar:
docker save -o 保存文件路徑 鏡像名稱/鏡像id

打包 tar 包

上傳 Docker image tar 包​

  1. 打開 Glows.ai 的 Images 介面,點擊 Upload Image。
  2. 輸入鏡像描述,點擊 Select Image 上傳剛打包的 tar 包。

選擇上傳鏡像

  1. 上傳中會顯示進度,上傳完成後即可在 Glows.ai 使用。

上傳完成

創建實例​

  1. 創建實例時選擇 My Images,可看到剛上傳的鏡像,選擇後若需要 Datadrive Mount 再完成實例創建。

選擇鏡像創建實例

  1. 實例啟動後,手動設置需要導出的端口,例如 SSH 服務在 22 端口:

    • 點擊 New Port Forwarding
    • Service Port 設為 22
    • 不勾選 HTTPS
    • 點擊 Create 完成端口導出

端口設定

  1. 設定完成後,約 10-20 秒端口映射建立完成,介面會顯示 SSH 鏈接與密碼,即可本地登入操作。

SSH 連線資訊

  1. 若實例運行其他服務,需要公網訪問,可新增端口映射,HTTP 服務需勾選 HTTPS。

新增公網端口

  1. 以 HTTP 服務為例,啟動服務到 8080 端口,透過實例介面對應鏈接即可訪問服務。

訪問 HTTP 服務

  1. 完成環境或文件修改後,可製作 Snapshot,或不再需要時直接釋放實例。

製作 Snapshot 或釋放

聯絡我們​

如果你在使用 Glows.ai 過程中有任何問題或建議,歡迎透過 Email、Discord 或 Line 與我們聯絡。

Email: support@glows.ai

Discord: https://discord.com/invite/glowsai

Line: https://lin.ee/fHcoDgG