2024-11-21|閱讀時間 ‧ 約 5 分鐘

[Docker] 基礎篇-基本概念

介紹

Docker 是一個開源的容器化平台,用於開發、部署和運行應用程式。它的主要目的是通過容器技術,實現應用的輕量級隔離,提供一致性、便攜性和高效性。

Docker 通過將應用及其依賴包裝到一個獨立的容器中,可以在任何支援 Docker 的環境中執行,無需擔心環境配置的差異問題。

VM跟Docker的差異?

自製表格

Docker 基本組成

自製關聯圖

1. Docker Image(映像)

一個靜態模板,包含了應用程式運行所需的文件、代碼、環境和依賴。

  • 用途: 作為容器運行的基礎。
  • 特點: 只讀、不可變。

2. Docker Container(容器)

基於 Image 啟動的實例,提供應用執行的隔離環境。

  • 用途: 運行應用程式,類似於虛擬機但更加輕量。
  • 特點: 可啟動、停止、刪除,且與主機共用內核資源。

3. Dockerfile

構建 Docker Image 的腳本文件,定義了從基礎映像到定製映像的構建過程。

  • 用途: 自動化構建 Image 的工具。
  • 特點: 基於指令逐步執行,如 FROMCOPYRUN 等。

4. Docker Compose

用來定義和管理多容器應用的工具,使用 YAML 文件描述服務、網路和存儲。

  • 用途: 快速啟動多容器應用。
  • 特點: 透過 docker-compose.yml 實現服務間的協作。

5. Docker Network(網路)

提供容器之間以及容器與外部之間的通信。

  • 用途: 配置隔離、橋接和端口映射等網路功能。
  • 特點: 支援多種網路模式(如橋接、主機、自定義網路)。

6. Docker Volume(卷)

是保存資料的解決方案,確保資料不會因容器刪除而丟失。

  • 用途: 存儲資料,如資料庫(DB)或日誌(Log)。
  • 特點: 容器間可共享數據,方便備份和管理。

Docker的應用情境

  1. 開發與測試環境:
    快速構建一致的環境,避免「Local運行正常,Production卻不行」的問題。
  2. 微服務架構:
    每個服務以容器形式運行,易於管理和擴展。
  3. 持續整合/持續部署(CI/CD):
    整合到 DevOps 流程中,實現自動化部署。
  4. 跨平台部署:
    在不同的雲端或伺服器環境中,確保應用一致運行。
  5. 大數據和 AI 開發:
    快速配置大數據處理框架或機器學習環境。

常用指令

  1. Images
    • 拉取映像:docker pull <image_name>
    • 列出本機映像:docker images
    • 刪除映像:docker rmi <image_id>
  2. Container
    • 啟動容器:docker run -it <image_name>
    • 列出容器:
      • 運行中:docker ps
      • 所有:docker ps -a
    • 停止容器:docker stop <container_id>
    • 刪除容器:docker rm <container_id>
  3. Container 執行命令
    • 進入容器:docker exec -it <container_id> bash
    • 檢視日誌:docker logs <container_id>
接下來會詳細說明Images & Container到dockerfile後續的應用&說明
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.