CodeGym /Adesua ahorow /Docker SELF /Docker 的基本術語

Docker 的基本術語

Docker SELF
等級 10 , 課堂 0
開放

6.1 映像檔 (Images)

想要有效率地使用Docker,需要理解幾個關鍵術語:映像檔,容器註冊表。現在我們來分析它們的用途以及它們如何相互作用。

Docker映像檔——這是一個模板,用來創建容器。映像檔包含應用程式執行所需的一切:作業系統、應用程式、庫和依賴項,以及配置文件。如果以OOP作比喻:Docker映像檔是類,而容器是類的對象。映像檔使用Dockerfile創建——一個描述創建映像檔步驟的文本文件。

映像檔的主要特點:

  1. 分層結構:映像檔由多個層組成。存在一個基礎層,每個後續層表示相對於前一層的更改。這能節省空間並縮短加載時間。
  2. 可重複使用:一個映像檔可用於創建多個容器。
  3. 可攜性:映像檔可以在不同系統之間傳輸,這使其非常適合在不同環境下開發、測試和部署應用程式。

映像檔的使用範例:

創建自己的映像檔:你可以編寫自己的Dockerfile,指定你的應用程式與其依賴項的設定,來創建自己的映像檔。

dockerfile

FROM ubuntu:latest
RUN apt-get update && apt-get install -y python3
COPY . /app
CMD ["python3", "/app/app.py"]

使用現有的映像檔:你可以使用Docker Hub中的映像檔,快速部署標準應用例如web伺服器或資料庫。

Terminal

docker pull nginx 

此指令會從Docker Hub公有存儲庫中下載nginx映像檔。

6.2 Containers (容器)

Docker 容器就是一個啟動了的映像實例。容器把應用程序及其依賴關係隔離在一個單獨的運行環境中,這樣就可以不依賴於主機系統或其他容器獨立運行。容器很輕量,因為它們使用的是主機操作系統的內核,而不像虛擬機那樣需要創建單獨的內核。

容器的主要特點:

  • 隔離性: 容器把應用程序隔離起來,保證它們的獨立運行並防止依賴衝突。
  • 輕量性: 容器相比虛擬機消耗更少的資源,因為它們不需要單獨的操作系統。
  • 快速啟動: 容器的啟動和停止比虛擬機快很多,這使得它們在動態環境和擴展中非常理想。

容器的使用示例:

啟動容器: 你可以用 docker run 指令從映像啟動一個容器。

Terminal

docker run -d -p 80:80 --name mynginx nginx

管理容器: Docker 提供了管理容器的指令,比如 start, stop, restart, rm 和 exec。

Terminal

docker stop mynginx
docker rm mynginx

在接下來的講座中,你將學到所有命令及其參數。

6.3 註冊中心 (Registries)

Docker 註冊中心 是 Docker 映像檔的存儲庫。註冊中心允許開發者和組織存儲、管理和分發容器映像。註冊中心分為公共和私有類型。

註冊中心的主要特性:

  • 公共註冊中心: 例如 Docker Hub,提供社群和官方開發者創建的多種映像檔訪問。
  • 私有註冊中心: 用於在組織內存儲和管理映像,確保訪問控制和安全性。
  • 與 CI/CD 整合: 註冊中心可以輕鬆與連續整合和部署系統整合,從而實現自動化映像創建和部署過程。

註冊中心的使用範例:

1. Docker Hub: 一個公開的(也是最受歡迎的)Docker 映像註冊中心。提供多種現成的(常常已通過驗證,能從下載統計中看到)映像訪問。

Terminal

docker pull nginx
docker push myusername/myimage:tag  

2. 私有註冊中心: 你可以使用 Docker Registry 設置和使用你自己的註冊中心。

Terminal

docker run -d -p 5000:5000 --name registry registry:2
docker tag myimage localhost:5000/myimage
docker push localhost:5000/myimage

映像、容器和註冊中心之間的交互

這三個組件之間緊密相關,形成了使用 Docker 的基礎:

  • 創建映像: 開發者使用 Dockerfile 創建映像並將其本地存儲。
  • 將映像上傳到註冊中心: 映像上傳到註冊中心(例如 Docker Hub 或私有註冊中心),在那裡存儲並為其他用戶或系統提供訪問。
  • 運行容器: 用戶從註冊中心下載映像並啟動容器,容器將應用程序隔離並提供其運行環境。

6.4 管理 (Orchestration)

管理 是在分散環境中管理多個容器的過程。管理工具幫助自動化部署、擴展和管理容器。

  • Kubernetes: 最受歡迎的容器管理平台,允許管理位於不同節點上的容器叢集。
  • Docker Swarm: Docker 內建的管理平台,用於創建和管理 Docker 叢集。
  • 管理功能: 自動擴展、自我修復、網路管理和負載均衡。

6.5 網絡 (Networks)

Docker中的網絡允許容器彼此之間以及與外部世界互相交互。Docker為不同的使用場景提供了幾種類型的網絡。

  • Bridge: Docker默認創建的網絡。橋接網絡中的容器可以彼此互相交互。
  • Host: 容器使用主機機器的網絡介面,直接訪問它們。
  • Overlay: 用於在多個Docker daemon之間創建網絡。這對於編排非常重要。
  • None: 禁用容器的所有網絡介面。適合隔離任務的情況。

6.6 卷 (Volumes)

卷 (Volumes) 是一種用於持久存儲容器數據的機制。它們可以將數據存儲在容器之外,這樣在重新啟動或刪除容器後,信息不會丟失。

  • 創建卷: 可以使用命令 docker volume create 來創建卷。
  • 掛載卷: 可以在啟動容器時使用 -v 標誌將卷掛載到容器中。
  • 優點: 卷可以提供方便的數據保存和容器之間的數據交換,並且比綁定目錄 (bind mounts) 的性能更高。

重要! 卷是一個虛擬硬碟,可以連接到虛擬機或容器。通常以普通文件的形式存儲在主機操作系統上。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION