Contents

學習 Docker:初學者的 8 個基本主題

掌握 Docker 是後端軟件工程師搶手的技能。 Docker 將幫助您構建、打包和分發應用程序。

Docker 使應用程序能夠跨不同平台無縫運行,最終減少運營中斷並賦予組織在各自市場中的優勢地位。然而,開始熟練掌握 Docker 的旅程一開始可能看起來令人畏懼。要熟練使用 Docker,必須熟悉某些基本概念。

什麼是 Docker?

Docker 是一種軟件應用程序,使用戶能夠將程序封裝在稱為“容器”的獨立模塊中。這項創新技術通過提供用於構建、驗證和分發軟件組件的高效平台,促進了應用程序的快速開發、測試和部署。

使用 Docker 需要與 Docker 引擎連接,該引擎可能安裝在各種操作系統上,例如 Windows 10 和 11、macOS 以及 Ubuntu 等各種 Linux 發行版。為了熟練地使用 Docker,必須熟悉眾多有助於其操作的專業工具和原理。以下是初學者在該領域開啟旅程所需的基本能力的精選列表。

Docker 鏡像

/bc/images/official-docker-images-page-on-docker-hub.jpg

Docker 鏡像充當構建容器時使用的基本藍圖,體現了操作環境及其相關軟件組件及其相互依賴關係的緊湊表示。該映像的組成是通過 Dockerfile 中概述的一組指南來描述的,這些指南規定了製作映像的過程。

文檔中詳細列出了一份全面的要求,Docker 根據這些要求通過執行預定的指導方針自主構建鏡像。 Docker 註冊表(稱為 Docker Hub)中可以訪問大量預先存在的映像,用戶可以從中選擇並用於他們的應用程序。出於安全考慮,Docker 建議使用官方認可的鏡像。

您可以根據定制的規格靈活地創建圖像。這些圖像有不同的尺寸、操作系統和語言,允許選擇最合適的選項來滿足您的應用程序要求。例如,您可以探索構建具有.NET Web API 的 Docker 映像的技術。

Docker 容器

容器是將應用程序封裝在可以獨立執行的獨立單元中的一種方法。它們在其邊界內包含應用程序運行所需的所有組件,例如庫、源代碼、依賴項和運行時環境。

容器提供了一種封裝軟件應用程序的機制,可以在不同的環境中實現一致的執行。通過利用容器,人們可以在開發和生產環境中有效管理應用程序,同時最大限度地減少錯誤的發生。容器存在多種潛在應用,為探索和實施提供了充足的機會。

Docker 容器擁有容器 ID、鏡像和基礎操作系統等標識符。此外,人們還可以觀察容器的運行時間、狀況和名稱。為了枚舉給定係統中的所有容器,請使用以下指令:

 docker container ls 

您應獲得有關所有容器化應用程序當前狀態的全面信息。

/bc/images/details-of-running-containers-on-docker-cli.jpg

您可以使用命令“docker ps”來查看所有活動容器,並使用“docker容器檢查[容器ID]”將允許您檢查特定容器的內容。

Dockerfile

Dockerfile 充當構建 Docker 鏡像的指導藍圖。它詳細介紹了基礎映像、應用程序代碼以及構建映像所需的必要組件。

上述文件不僅包含環境變量,還包含在其綜合範圍內生成圖像所需的指令。人們可以生成一個 Dockerfile,類似於製作任何典型文件。在描述 Docker 所施加的指導方針時,必須遵守特定的語法,以確保正確的理解。例如,請考慮以下示例的典型 Dockerfile 示例:

/bc/images/a-dockerfile-with-instructions.jpg

Docker 組合

Docker Compose 是一種通過 YAML 配置文件描述和執行多容器 Docker 應用程序的工具,該文件指定特定應用程序所需的必要服務。此 YAML 文件充當概述建立所需應用程序所需的各種組件的文檔。有了這些信息,人們就可以通過單個命令執行和啟動所有必需的服務,從而簡化設置和管理複雜容器化應用程序的過程。

Docker Compose 是一種多功能工具,使用戶能夠跨不同環境(例如生產、登台、開發和測試)部署和管理應用程序。憑藉其簡化的編排功能,Docker Compose 簡化了管理多個容器的複雜任務。

Docker Compose 為應用程序的整個生命週期提供全面的管理功能,包括服務的啟動、終止和重建。此外,它還允許監視活動服務、日誌輸出流以及特定服務內命令的執行。

Docker Compose 為配置網絡、管理捲和定義依賴項提供了便捷的解決方案。此外,它還可以通過指定處理增加的需求所需的服務副本來擴展生產環境中的應用程序。

Docker Compose 提供了一種簡化的方法,用於跨多個平台部署複雜的軟件堆棧,同時促進這些配置在不同系統上的一致再現。熟悉此工具可以提高應用程序的生產力和性能。

下面是 Docker Compose 配置文件的示例,演示瞭如何在單個 YAML 文檔中定義和編排多個容器:yamlversion:‘3’services:web:build:.ports:-“8080:8080”environment:-NODE_ENV=生產在這個例子中,我們定義了兩個服務webdbweb服務指定它應該從當前目錄(即Dockerfile的位置)構建,並映射端口8080主機到容器中的端口8080。此外,它將NODE\_ENV環境變量設置為`

/bc/images/docker-compose-yaml-file-2.jpg

Docker 中心

/bc/images/docker-hub-signup-page.jpg

Docker Hub 是 Docker 的在線容器註冊表。作為最大的容器註冊表,它是開發人員和開源貢獻者的協作工具。對於軟件供應商來說,它也是一個極好的市場。

Docker Hub 是獲得強大虛擬化技術的可靠平台。用戶可以建立存儲庫並傳播超過十萬個圖像資產。

在我們的平台上託管您的應用程序和編碼成為可能,並且能夠通過共享項目與其他開發人員協作。 Docker Hub 為選定的授權團體免費提供公共選項和私有存儲庫,或者,我們為需要基於團隊的安全訪問的付費客戶提供定制的解決方案。

Docker 網絡

Docker 網絡充當容器間無縫通信的促進者,使容器能夠在安全且受限的環境中進行內部和外部交互。此功能擴展到單個和多託管容器配置,確保它們之間有效且監管良好的連接。

默認情況下,在計算機上運行容器不允許暴露於外部網絡。為了實現這種暴露,可以利用網絡端口來促進與外部 IP 地址、域名系統 (DNS) 服務、路由表和互聯網網關的連接。

網絡功能使容器能夠在有限的網絡設置中運行。這些網絡通過提供唯一的命名空間標識符和 IP 地址分配來提供隔離感,從而最大限度地減少潛在衝突,同時增強整體系統安全性。

Docker 卷

Docker 採用一種稱為卷的技術來管理持久數據。默認情況下,容器具有非永久性的性質,可以毫不費力地與其內容物一起更換或根除。然而,某些情況可能需要保留信息。在這種情況下,人們可以利用 Docker 卷來監控持久數據。

卷提供了多種功能,而不僅僅是促進容器化應用程序之間的信息共享。與其他存儲方法相比,這些包括簡單的備份和遷移過程。此外,用戶可以通過 Docker 命令行界面 (CLI) 或應用程序編程接口 (API) 方便地管理卷。

當部署容器而不使用關聯卷時,Docker 默認會生成一個隱式捲。此外,用戶還可以通過執行特定命令來生成和維護與任何正在運行的容器分離的單獨卷。要建立新卷,可以執行以下命令:

 docker volume create my-vol 

要查看您創建的虛擬硬盤,請執行以下指令:

 docker volume ls //local my-vol 

然後,您可以將捲附加到您想要的任何容器。您可以在 Docker 官方文檔中閱讀有關卷的更多信息。

其他 Docker 功能

Docker 已成為管理容器和維護軟件開發項目中版本控制的備受推崇的選擇。通過熟練使用其一系列工具,開發人員能夠通過簡化的工作流程來提高生產力和效率。

Docker 擁有大量的功能,使用戶能夠有效地管理他們的應用程序。在熟練掌握其基本方面後,人們可以深入研究更複雜的功能,例如 Docker Swarm,這是一種為協調高級軟件系統而設計的工具。