<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Docker 講稿 - 分類 - Yoru Karu Studio</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/categories/docker-%E8%AC%9B%E7%A8%BF/</link><description>Docker 講稿 - 分類 | Yoru Karu Studio</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><managingEditor>lalalalaluk@gmail.com (luk)</managingEditor><webMaster>lalalalaluk@gmail.com (luk)</webMaster><lastBuildDate>Sat, 20 Jun 2026 15:00:00 +0800</lastBuildDate><atom:link href="https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/categories/docker-%E8%AC%9B%E7%A8%BF/" rel="self" type="application/rss+xml"/><item><title>Docker 教學 第 6 堂：GitHub Actions 進階實作與課程總結</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session6-github-actions-advanced/</link><pubDate>Sat, 20 Jun 2026 15:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session6-github-actions-advanced/</guid><description><![CDATA[6-1 GitHub Actions 進階語法（約 1 小時） 環境變數 在 workflow 裡可以用環境變數來避免重複寫相同的值：
name: CI with Environment Variables on: push: branches: [ main ] env: # 整個 workflow 共用的環境變數 IMAGE_NAME: my-flask-app PYTHON_VERSION: &#39;3.11&#39; jobs: build: runs-on: ubuntu-latest env: # 這個 job 專用的環境變數 FLASK_ENV: testing steps: - name: 顯示環境變數 run: | echo &#34;Image: ${{ env.IMAGE_NAME }}&#34; echo &#34;Python: ${{ env.PYTHON_VERSION }}&#34; echo &#34;Flask: $FLASK_ENV&#34; 環境變數的三個層級：
層級 範圍 寫在哪裡 Workflow 層 所有 job 都能用 最外層的 env: Job 層 只有這個 job 能用 job 底下的 env: Step 層 只有這個 step 能用 step 底下的 env: 條件判斷 可以根據條件決定要不要執行某個 step 或 job：]]></description></item><item><title>Docker 教學 第 5 堂：CI/CD 概念與 GitHub Actions 入門</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session5-cicd-github-actions/</link><pubDate>Sat, 20 Jun 2026 14:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session5-cicd-github-actions/</guid><description>5-1 什麼是 CI/CD？（約 30 分鐘） 先講一個故事 想像你在一間餐廳工作：
傳統做法：廚師做完一道菜 → 自己端出去 → 自己收盤子 → 回來再做下一道。每件事都要手動做。 自動化做法：廚師做完菜放到出餐口 → 傳送帶自動送到客人桌上 → 髒盤子自動回收。廚師只需要專心做菜。 CI/CD 就是軟體開發的「傳送帶」——你只需要專心寫程式碼，剩下的測試、打包、部署全部自動完成。
CI/CD 的定義 CI（Continuous Integration，持續整合）：
開發者把程式碼推到 Git 之後，自動執行測試 確保每次改動都不會弄壞現有的功能 「我 push 了程式碼 → 系統自動幫我跑測試 → 告訴我有沒有通過」 CD（Continuous Deployment / Delivery，持續部署/交付）：
測試通過之後，自動把程式打包、部署到伺服器 不需要手動 SSH 進伺服器去更新程式 「測試通過 → 自動 build Docker Image → 自動部署到伺服器」 完整流程：
開發者 push 程式碼 ↓ CI：自動跑測試 ↓ （測試通過） CD：自動 build Docker Image ↓ CD：自動 push 到 Docker Hub ↓ CD：自動部署到伺服器 ↓ 使用者看到最新版本沒有 CI/CD 的痛苦 手動流程 CI/CD 自動化 自己跑測試，常常忘記跑 每次 push 自動跑，不會漏 自己打 docker build、docker push 自動 build 和 push SSH 進伺服器手動更新 自動部署 「我本地測過了，怎麼上線就壞了？」 每次都在統一環境測試 部署一次要 30 分鐘 部署一次只要等幾分鐘 常見的 CI/CD 工具 工具 說明 GitHub Actions GitHub 內建，目前最主流，本課程使用 GitLab CI/CD GitLab 內建，GitLab 用戶首選 Jenkins 老牌工具，需要自己架伺服器，新專案較少使用 CircleCI 第三方服務 本課程使用 GitHub Actions，因為大部分人都有 GitHub 帳號、免費額度最多（每月 2000 分鐘）、學習資源最豐富。</description></item><item><title>Docker 教學 第 4 堂：Dockerfile、映像檔優化與資源配置</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session4-dockerfile-resources/</link><pubDate>Sat, 20 Jun 2026 13:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session4-dockerfile-resources/</guid><description>&lt;blockquote>
&lt;p>本系列為 18 小時 Docker 基礎教學講義，適合初學者，使用 Windows 電腦。
本篇為第 4 堂課，約 3 小時。&lt;/p>
&lt;/blockquote></description></item><item><title>Docker 教學 第 3 堂：MySQL、Docker Compose 與多容器管理</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session3-mysql-compose/</link><pubDate>Sat, 20 Jun 2026 12:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session3-mysql-compose/</guid><description>&lt;blockquote>
&lt;p>本系列為 18 小時 Docker 基礎教學講義，適合初學者，使用 Windows 電腦。
本篇為第 3 堂課，約 3 小時。&lt;/p>
&lt;/blockquote></description></item><item><title>Docker 教學 第 2 堂：Flask 容器、容器管理與 Volume</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session2-flask-volume/</link><pubDate>Sat, 20 Jun 2026 11:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session2-flask-volume/</guid><description>2-1 建立 Flask Web 容器（約 1 小時） 容器基本操作概念 現在我們要把映像檔「跑起來」，變成容器。最常用的指令是 docker run。
docker run 做了什麼？
檢查本機是否有指定的映像檔 如果沒有，自動從 Docker Hub 下載 用映像檔建立一個新的容器 啟動容器 實作：啟動一個 Python 容器 # 啟動一個 Python 容器，進入互動模式 docker run -it python:3.11 python參數說明：
-i（interactive）：保持標準輸入開啟 -t（tty）：分配一個終端 -it：這兩個通常一起用，讓你可以跟容器互動 最後的 python：進入容器後要執行的指令 現在你已經在容器裡的 Python 互動環境了！試試看：
print(&amp;#34;Hello from Docker!&amp;#34;) import sys print(sys.version)按 Ctrl + D 或輸入 exit() 離開。
實作：用 Flask 建立一個 Web 應用容器 步驟 1：在本機建立專案資料夾
打開 PowerShell：
mkdir C:\docker-lab\flask-app cd C:\docker-lab\flask-app步驟 2：建立 Flask 應用程式
用記事本或任何編輯器建立 app.</description></item><item><title>Docker 教學 第 1 堂：Docker 概念、安裝與第一個容器</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session1-basics-setup/</link><pubDate>Sat, 20 Jun 2026 10:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session1-basics-setup/</guid><description>&lt;blockquote>
&lt;p>本系列為 18 小時 Docker 基礎教學講義，適合初學者，使用 Windows 電腦。
本篇為第 1 堂課，約 3 小時。&lt;/p>
&lt;/blockquote></description></item></channel></rss>