匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0516 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0516
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
本次系列講座首先介紹了 Docker 中兩種備份與遷移機制:docker save/docker load(用於映像檔)與 docker export/docker import(用於容器)。講師強調了兩者在處理對象、檔案大小及匯入命名上的差異。接著比較了 docker commit 與 docker export/import 兩種建立映像檔的方式,指出 commit 會增加不必要的映像檔層數,建議優先使用 export。課程實作部分,指導學員使用 scp 將檔案傳輸至 Linux 虛擬機,並編寫 Dockerfile 建立一個包含 Tomcat 的 Web Server 映像檔,涵蓋 FROM、RUN、ADD、EXPOSE、ENTRYPOINT 等指令。<br><br> 隨後,講座深入探討了 Dockerfile 中 ENTRYPOINT 與 CMD 的核心差異,建議初學者使用 ENTRYPOINT 以確保容器穩定啟動。課程進而延伸至 Kubernetes (K8s) 的學習,將其比喻為多引擎飛機,強調其叢集備援與高可用性的優勢。講師介紹了學習 K8s 的重要資源網站(kubernetes.io, cncf.io)及相關專業認證(CKA, CKAD, CKS),並闡述了容器化技術相較於傳統虛擬機部署的核心優勢,如免安裝、避免人為錯誤、跨平台及實現應用與底層作業系統的解耦,這正是雲原生(Cloud Native)的核心精神。<br><br> 講座接著深入探討了雲原生領域的知識,包括 IT 認證的類型(選擇題 vs. 實務操作型)、CNCF 基金會的宗旨與專案成熟度分級。最後,詳細闡述了 Kubernetes 的起源、架構(Master 與 Worker 節點及其組件如 API Server、Scheduler、etcd、Kubelet、Kube-proxy)以及其核心功能,如資源調度、自我修復、服務發現和自動擴展/縮減。講師特別強調了「聲明式配置」作為 K8s 的重要核心觀念,以及內建 DNS(CoreDNS)在服務發現機制中的關鍵作用,並解釋了 Control Manager 如何監控並維持系統的預期狀態,實現自動化管理與故障恢復。 === Docker 映像檔與容器的備份、遷移與客製化 === * 映像檔的備份與還原 (docker save / docker load) ** 用途: docker save 將一個或多個映像檔 (Image) 儲存成 .tar 檔案;docker load 則從檔案中載入映像檔。 ** 特性: 載入後的映像檔名稱與原始名稱完全相同。 ** 應用情境: 適用於無網路或無倉庫 (Registry) 環境下的備份、還原及主機間遷移。 * 容器的匯出與匯入 (docker export / docker import) ** 用途: docker export 匯出一個容器 (Container) 的檔案系統成為 .tar 檔案;docker import 則將該檔案匯入並建立成一個新的「映像檔」。 ** 特性: *** 處理對象是容器而非映像檔。 *** 匯入時可以為新映像檔指定全新名稱。 *** 可用於建立客製化映像檔:啟動基礎容器 -> 修改 -> 匯出 -> 匯入成新映像檔。 * docker commit vs docker export/import ** 目的: 兩者皆可基於容器變更建立新映像檔。 ** 主要差異: commit 會在原有映像檔上疊加新層 (Layer),增加層數,可能影響載入速度;而 export/import 產生的映像檔只有一個基礎層。 ** 最佳實踐: *** 建議使用 export/import 來基於容器變動建立映像檔。 *** 建議使用 save/load 來交換或備份完整的映像檔。 * Dockerfile 指令 (ENTRYPOINT vs. CMD) ** ENTRYPOINT: 定義的指令在容器啟動時一定會被執行,不會被 docker run 後附加的指令覆蓋。 ** CMD: 定義的指令會被 docker run 後附加的指令覆蓋。 ** 建議: 初學者建議優先使用 ENTRYPOINT,以避免因意外附加指令導致容器啟動失敗。 === Docker 映像檔的建立與執行 (Web Server 實例) === * Dockerfile 常用指令 ** FROM rockylinux:9: 指定基礎映像檔。 ** WORKDIR /root: 設定容器內的工作目錄。 ** RUN ...: 在建構過程中執行指令,如安裝套件。 ** ADD jdk-8u191-linux-x64.tar.gz /: 將主機檔案加入映像檔並自動解壓縮。 ** EXPOSE 8080: 宣告容器將開放的連接埠。 ** ENV JAVA_HOME ...: 設定環境變數。 ** ENTRYPOINT [...]: 設定容器啟動時執行的命令。 * 建置與執行流程 1. 準備檔案: 使用 scp 將 Dockerfile 及所需檔案(如 JDK)傳輸至伺服器。 2. 建置映像檔: docker build -t webserver . 3. 執行容器: docker run --name my-web-server -p 8080:8080 webserver 4. 驗證: 透過瀏覽器訪問主機 IP 的 8080 連接埠。 === Docker 容器化技術的優勢與雲原生精神 === * Image 的核心價值 ** 簡化部署: 將應用程式與其所有依賴(套件、函式庫、設定)打包在一起,如同「綠色軟體」,免安裝即可執行。 ** 避免人為錯誤: 標準化的 Image 確保了環境的一致性。 ** 跨平台與可移植性: 「一次打包,到處部署」,不受底層作業系統發行版差異的影響。 * 解耦(Decoupling)與雲原生(Cloud Native) ** 核心目標是實現應用程式與作業系統的解耦,讓應用程式擺脫對特定環境的強依賴性,提升靈活性與可移植性。 * 持久卷掛載(Persistent Volume) ** 將主機節點的資料夾掛載到容器內部,實現資料持久化。即使容器被刪除,資料依然保留在主機上。 === Kubernetes (K8s) 基礎概念 === * 從單機到叢集管理 ** Docker 是單機管理工具,存在單點故障風險。 ** K8s 是叢集管理工具,跨多台主機管理容器,提供備援 (HA, High Availability)。講師以多引擎飛機比喻其叢集備援特性。 * 操作模型:指令型 vs. 聲明型 ** 指令型 (Imperative): 告訴系統「如何做」(How)。 ** 聲明型 (Declarative): 宣告想要的「最終狀態」(What),系統會自動完成部署。這是 K8s 的核心理念,也是未來趨勢。 * 起源與命名: 源自 Google 內部專案 Borg,K8s 是其簡稱。100% 由 Go 語言撰寫。 * 學習資源與認證 ** 官方網站: kubernetes.io (官方文件) 和 cncf.io (雲原生運算基金會)。 ** 專業認證: CKA (Administrator), CKAD (Developer), CKS (Security Specialist) 是含金量較高的實務操作型認證。 === Kubernetes (K8s) 架構與核心組件 === * Master Node (管理節點): 負責整個叢集的管理。 ** API Server: 所有操作的統一入口,預設透過安全的 6443 連接埠進行認證與授權 (RBAC) 存取。 ** etcd: 儲存叢集所有狀態與設定的分佈式鍵值資料庫,極為重要。 ** Scheduler: 負責將 Pod 調度到最合適的 Worker Node 上。 ** Control Manager: 自動化管理中心,監控並維持系統的預期狀態,執行自我修復。 * Worker Node (工作節點): 負責運行應用程式。 ** Kubelet: 負責管理 Pod 的完整生命週期,並向 Master 回報節點狀態。 ** Kube-proxy: 負責節點內的網路通訊與負載平衡,底層基於 IPtables 或 IPVS 實現。 ** Container Runtime: 容器執行環境,如 ContainerD。 === Kubernetes (K8s) 核心功能 === * 服務發現 (Service Discovery) ** 內建 DNS 服務(新版為 CoreDNS),當建立 Service 時,會自動為其創建 DNS 紀錄。 ** FQDN 格式為 服務名稱.命名空間名稱.svc.cluster.local,其中 服務名稱.命名空間名稱 必須記住。 ** Pod 內的 DNS 設定會被 K8s 自動覆寫,指向內部 DNS。 * 主要功能特性 ** 資源調度 (Scheduling): 自動選擇節點部署應用。 ** 自我修復 (Self-healing): 當應用異常時,自動恢復到正常狀態。 ** 擴展與縮減 (Scaling): 可手動或自動(Auto-scaling)增減應用實例數量以應對負載變化。 === Linux 相關知識 === * 套件管理工具: apk (Alpine), apt (Ubuntu), yum (Red Hat/Rocky), zypper (openSUSE)。 * 檔案傳輸: 使用 scp 指令在本地與遠端主機間安全地複製檔案,是必備技能。語法:scp [本地檔案] [使用者]@[遠端主機]:[遠端路徑]。 [[檔案:2026-0516-01.png|800px]]
返回到「
緯育 2026-0516
」。
* [[檔案:2000-Dragon-30.png|15px]] [[附近走走]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[應用程式]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[郵遞區號]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[作品紀錄]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[攝影相簿]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路書籤]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路照片]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[星艦日誌]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[Privacy_Policy|隱私政策]]<br>
附近走走
應用程式
郵遞區號
作品紀錄
攝影相簿
網路書籤
網路照片
星艦日誌
隱私政策
首頁
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌