Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

使用 Docker 運行 Python:互動模式與腳本執行完整指南

最後更新:2025年3月4日架構

本文為 Docker 基本介紹系列文,第 5 篇:

  1. AMD64 與 ARM64 的全面解析:新手必讀指南
  2. 新手必看!如何在筆電安裝 Docker?完整架構選擇指南
  3. Docker 新手指南:從鏡像到容器,完整概念與操作教學
  4. Docker 進階實戰:Volume、Port Mapping 與 Docker Compose 完整指南
  5. 使用 Docker 運行 Python:互動模式與腳本執行完整指南 👈進度

閱讀完本系列,可前往 Docker 進階介紹 繼續閱讀進階內容

如果你是 Python 開發者,可能會遇到以下問題:

  • 你的電腦沒有安裝 Python,但想快速測試 Python 指令?
  • 想切換不同版本的 Python 來測試相容性,而不影響本機環境?
  • 不想在本機安裝多餘的 Python 套件,避免環境污染?
  • 希望確保 Python 程式可以在不同環境中穩定運行?

Docker 提供了一種輕量、快速且不影響本機環境的方式來運行 Python。

你可以透過 Docker 啟動一個Python 互動模式來即時執行 Python 指令,也可以讓容器運行你的 Python 腳本,實現與本機類似的開發體驗。

這篇文章會帶你學會:

✅ 如何使用 Docker 啟動 Python 互動模式(REPL)
✅ 如何使用 Docker 執行本機的 Python 腳本
✅ 如何讓 Docker 容器讀取你的 Python 檔案,並保持環境隔離

不論是 Python 初學者,還是希望提升開發效率的工程師,這篇指南都能幫助你快速掌握 Docker 運行 Python 的技巧!


使用 Docker 啟動 Python 互動模式(REPL)

什麼是 Python 互動模式?

Python 互動模式(REPL,全名 Read-Eval-Print Loop)是一種即時執行 Python 指令的模式,你可以輸入 Python 代碼,立即看到執行結果,就像這樣:

>>> print("Hello, Docker!")
Hello, Docker!

這種方式非常適合用來快速測試 Python 語法或函式,但如果你的電腦沒有安裝 Python,或想確保測試環境的乾淨與獨立性,就可以使用 Docker 來運行 Python 互動模式。

使用 Docker 啟動 Python 互動模式

基本指令

docker run -it --rm python

指令解析

指令部分作用
docker run啟動一個新的 Docker 容器
-it進入互動模式(interactive & terminal)
--rm當容器停止時,自動刪除容器(不留下殘留的容器)
python使用官方的 Python 鏡像,並啟動 Python 直譯器
作用啟動一個新的 Docker 容器
作用進入互動模式(interactive & terminal)
作用當容器停止時,自動刪除容器(不留下殘留的容器)
作用使用官方的 Python 鏡像,並啟動 Python 直譯器

這條指令會做什麼?

  1. 檢查是否已有 Python 鏡像:
    • 如果你的本機沒有 python 鏡像,Docker 會從 Docker Hub 自動下載最新的 Python 鏡像。
  2. 啟動一個臨時的 Python 容器:
    • 這個容器內部就像一個獨立的小型 Linux 環境,裡面有完整的 Python 執行環境。
  3. 進入 Python 互動模式:
    • 你會看到 >>> 提示符號,然後可以輸入 Python 指令,例如: >>> import sys >>> print(sys.version)
  4. 當你輸入 exit() 或按 Ctrl+D 退出時:
    • 因為 --rm 參數,Docker 會自動刪除這個容器,不會在系統中留下任何多餘的檔案。

如果你想保留容器,不讓它自動刪除,可以去掉 --rm:

docker run -it python

這樣容器停止後仍然會保留,你可以用 docker ps -a 找到它,並重新啟動。


使用 Docker 執行 Python 腳本

讓容器執行 Python 腳本,而不是互動模式

如果你有一個 Python 腳本 script.py,希望在 Docker 容器中執行,可以這樣做:

docker run --rm python python -c "print('Hello from Docker!')"

這條指令的作用是:

  • python -c "print('Hello from Docker!')":在容器內執行 print('Hello from Docker!')
  • --rm:執行完後刪除容器,不留下任何痕跡

在 Docker 容器內執行本機 Python 檔案

如果你的 script.py 存放在本機,想讓 Docker 容器執行它,可以使用 Volume 掛載(Volume Mounting):

docker run --rm -v $(pwd):/app -w /app python python script.py

先看最基本的 docker run

docker run python

這條指令的意思是: 👉 使用 Python 的 Docker 映像檔來啟動一個容器。

但是這樣跑起來,容器什麼都不會做,因為我們沒有給它指令。

加上 python script.py

docker run python python script.py

這條指令的意思是: 👉 啟動一個 Python 容器,然後在裡面執行 script.py。

但有個問題: ❌ 容器裡面根本沒有 script.py!

因為 Docker 容器是一個獨立的環境,不會自動帶入你電腦上的檔案。

用 -v $(PWD):/app 讓容器可以讀取你的檔案

docker run -v $(PWD):/app python python script.py

這裡的 -v $(PWD):/app 是: 👉 把你電腦的資料夾 (當前目錄 $(PWD)) 掛載到容器內的 /app 資料夾。

這樣一來:

  • ✅ 容器內的 /app 資料夾就會擁有你電腦上的所有檔案!
  • ✅ script.py 現在容器內也可以讀取了。

設定容器的工作目錄 -w /app

docker run -v $(PWD):/app -w /app python python script.py

這裡的 -w /app 是: 👉 設定容器的「當前資料夾」為 /app。

這樣 Python 直接執行 script.py,不需要寫完整路徑 /app/script.py,更方便。

加上 --rm 讓容器跑完就刪除

docker run --rm -v $(pwd):/app -w /app python python script.py

這裡的 --rm 是: 👉 容器執行完畢後,自動刪除,不留下任何垃圾檔案。

這樣你的 Docker 環境不會堆積一堆沒用的容器。

最終的指令解釋

docker run --rm -v $(pwd):/app -w /app python python script.py
  • 👉 啟動一個 Python 容器,然後執行 script.py,執行完後自動刪除。
  • ✅ 容器可以讀取你電腦的檔案(因為 -v $(pwd):/app)。
  • ✅ 容器內的當前目錄變成 /app(因為 -w /app)。
  • ✅ 容器跑完就自動刪除(因為 --rm)。

用更簡單的比喻,這條指令就像:

  1. 租了一個臨時辦公室(啟動 Docker 容器)。
  2. 把你的筆記本、檔案帶進去(掛載你的當前目錄)。
  3. 讓工作地點在會議室(設定工作目錄 /app)。
  4. 開始寫 Python 程式(執行 script.py)。
  5. 工作結束,把辦公室歸還,完全不留痕跡(--rm 自動刪除容器)。

總結

學到的重點

概念說明
docker run -it --rm python進入 Python 互動模式(REPL)
docker run --rm python python -c "print('Hello')"直接執行 Python 指令
docker run --rm -v $(pwd):/app -w /app python python script.py在容器內執行本機 Python 腳本
docker run -it --rm python:3.8使用特定版本的 Python
說明進入 Python 互動模式(REPL)
說明直接執行 Python 指令
說明在容器內執行本機 Python 腳本
說明使用特定版本的 Python

現在你已經掌握了如何使用 Docker 來運行 Python,不論是 REPL 互動模式還是執行 Python 腳本,你都能輕鬆上手! 🚀

快打開終端機,試試這些指令吧!💪

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

架構

目錄

  • 使用 Docker 啟動 Python 互動模式(REPL)
  • 什麼是 Python 互動模式?
  • 使用 Docker 啟動 Python 互動模式
  • 使用 Docker 執行 Python 腳本
  • 讓容器執行 Python 腳本,而不是互動模式
  • 在 Docker 容器內執行本機 Python 檔案
  • 總結
  • 學到的重點