docker安全特性有:1、加密節點ID;2、基於TLS的認證機制;3、安全准入令牌;4、支援週期性憑證自動更新的CA配置;5、加密叢集存儲;6、加密網路;7、Docker安全掃描;8、Docker內容信任;9、Docker金鑰等等。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Docker 平台也引進了大量自有安全技術。 Swarm 模式基於 TLS 構建,且配置上極為簡單且靈活。安全掃描對鏡像進行二進位源碼等級掃描,並提供已知缺陷的詳細報告。
Docker 內容信任允許使用者對內容進行簽署和認證,而金鑰目前也是 Docker 中的一等公民。 Docker 為這些安全性技術設定了合理的預設值,但使用者也可以自行修改配置,或停用這些安全性技術。
Swarm 模式
Swarm 模式是 Docker 未來的趨勢。 Swarm 模式支援使用者叢集化管理多個 Docker 主機,同時也能透過宣告式的方式部署應用程式。
每個 Swarm 都由管理者和工作者節點構成,節點可以是 Linux 或 Windows。管理者節點構成了叢集中的控制層,並負責叢集配置以及工作負載的分配。工作者節點就是運行應用程式碼的容器。
如所預期的,Swarm 模式包含許多開箱即用的安全特性,同時也設定了合理的預設值。這些安全特性包括以下幾點。
加密節點 ID。
基於 TLS 的認證機制。
安全准入令牌。
支援週期性憑證自動更新的 CA 設定。
加密叢集儲存(配置 DB)。
加密網路。
Docker 安全性掃描
#快速發現程式碼缺陷的能力至關重要。 Docker 安全掃描功能讓對 Docker 映像中已知缺陷的偵測工作變得簡單。
Docker 安全掃描已經可以用於 Docker Hub 上私有倉庫的映像了。同時該技術也可以作為 Docker 可信任服務在地化部署解決方案的一部分。最後,所有官方 Docker 映像都經過了安全掃描,掃描報告在其倉庫中可以查閱。
Docker 安全掃描對 Docker 映像進行二進位程式碼層級的掃描,並對其中的軟體根據已知缺陷資料庫(CVE 資料庫)進行檢查。在掃描執行完成後,會產生一份詳細報告。
開啟瀏覽器存取 Docker Hub,並搜尋 Alpine 倉庫。下圖展示了官方 Alpine 倉庫的 Tags 標籤頁。
Alpine 倉庫是官方倉庫,這表示倉庫會自動掃描並產生對應報告。可以看到,鏡像標籤為 edge、lates 以及 3.6 的鏡像都通過了已知缺陷的檢查。但 alpine:3.5 鏡像有已知缺陷(標紅)。
如果開啟 alpine:3.5 鏡像,可以發現如下圖所示的詳細資訊。
這是發現自己軟體中已知缺陷細節的簡單方法。
Docker 可信任鏡像倉庫服務(Docker Trusted Registry, DTR),屬於Docker 企業版中本地化鏡像倉庫服務的一部分內容,提供了相同的Capability,同時也允許用戶自行控制其映像掃描時機以及掃描方式。
例如,DTR 允許使用者選擇鏡像是在推送時自動觸發掃描,還是只能手動觸發。同時 DTR 也允許使用者手動更新 CVE 資料庫,這對於 DTL 無法進行連網來自動更新 CVE 資料的場景來說,是理想的解決方案。
這是 Docker 安全掃描,一種深入偵測 Docker 映像是否存在已知安全缺陷的好方法。當然,能力越大責任越大,當使用者發現缺陷後,就需要承擔解決相應缺陷的責任了。
Docker 內容信任
Dockr 內容信任(Docker Content Trust,DCT)使得使用者很容易就能確認所下載映像的完整性以及其發布者。在不可信任的網路環境中下載鏡像時,這一點很重要。
從更高層次來看,DCT 允許開發者對發佈到 Docker Hub 或 Docker 可信任服務的映像進行簽署。當這些鏡像被拉取的時候,會自動確認簽章狀態。下圖展示了這個過程。
DCT 還可以提供關鍵上下文,例如鏡像是否已被簽署從而可用於生產環境,鏡像是否被新版本取代而過時等。
DTC 提供的上下文還在初期,配置起來相當複雜。在 Docker 主機上啟用 DCT 功能,所要做的只是在環境中將 DOCKER_CONTENT_TRUST 變數設為 1。
$ export DOCKER_CONTENT_TRUST=1
在實際環境中,使用者可能希望在系統中預設開啟該特性。
如果使用 Docker 統一配置層(Docker 企業版的一部分),則需要勾選下圖所示 Run Only Signed Images 複選項。這樣會強制所有在 UCP 叢集中的節點只運行已簽章鏡像。
由上圖中可知,UCP 在 DCT 的基礎上進行進一步封裝,提供了已簽署鏡像的安全首選項資訊。例如,使用者可能有這樣的需求:在生產環境中只能使用由 secops 簽署的鏡像。
一旦 DCT 功能開啟,就無法取得並使用未簽名鏡像了。下圖展示了開啟 DCT 之後,如果再次嘗試透過 Docker CLI 或 UCP Web UI 介面拉取未簽名映像時所報的錯誤(兩個範例都嘗試拉取標籤為「unsigned」的映像)。
下圖展示了 DCT 是如何阻止 Docker 用戶端拉取一個被竄改的映像的。
下圖展示了 DCT 如何阻止客戶端拉取舊映像。
Docker 內容信任是一種很重要的技術,能幫助使用者檢查從 Docker 服務中拉取的映像。此技術的基礎模式配置起來非常簡單,但是類似上下文等一些高階特性,現階段配置起來還是非常複雜的。
Docker 金鑰
很多應用程式都需要金鑰。例如密碼、TLS 憑證、SSH key 等。
在 Docker1.13 版本之前,沒有一種標準且安全的方式能讓金鑰在應用程式間實作共用。常見的方式是開發人員將密鑰以文字的方式寫入環境變數。這與理想狀態差距甚遠。
Docker1.13 引入了 Docker 金鑰,將金鑰變成 Docker 生態系統中的一等公民。例如,新增了一個新的子命令 docker secret 來管理金鑰。在 Docker 的 UCP 介面中,也有專門的地方來建立和管理金鑰。
在後台,金鑰在創建後以及傳輸中都是加密的,使用時被掛載到記憶體檔案系統,並且只對那些已經被授權了的服務開放存取。這確實是一種綜合性的端到端解決方案。
下圖展示了其整體流程。
以下依序介紹上圖中所示工作流程的每一步。
1) 金鑰被創建,並且傳送到 Swarm。
2) 金鑰存放在叢集儲存當中,並且是加密的(每個管理者節點都能存取叢集儲存)。
3) B 服務被創建,並且使用了該金鑰。
4) 金鑰傳送到 B 服務的任務節點(容器)的過程是加密的。
5) B 服務的容器將金鑰解密並掛載到路徑 /run/secrets 下。這是一個臨時的記憶體檔案系統(在 Windows Docker 中該步驟有所不同,因為 Windows 中沒有記憶體檔案系統這個概念)。
6) 一旦容器(服務任務)完成,記憶體檔案系統關閉,金鑰也隨之刪除。
7) A 服務中的容器不能存取該金鑰。
使用者可以透過 docker secret 子指令來管理金鑰,可以透過在執行 docker service create 指令時附加 --secret,從而為某個服務指定金鑰。
推薦學習:《docker影片教學》
以上是docker安全特性有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Docker簡化開發和運維流程的方式包括:1)提供一致的環境,確保應用程序在不同環境中一致運行;2)通過Dockerfile和鏡像構建優化應用程序部署;3)使用DockerCompose管理多個服務。 Docker通過容器化技術實現這些功能,但使用過程中需注意鏡像構建、容器啟動和網絡配置等常見問題,並通過鏡像優化和資源管理提升性能。

Docker和Kubernetes的關係是:Docker用於打包應用,Kubernetes用於編排和管理容器。 1.Docker通過容器技術簡化應用打包和分發。 2.Kubernetes管理容器,確保高可用性和可擴展性。它們結合使用可提升應用部署和管理效率。

Docker通過容器技術解決了軟件在不同環境中運行一致性的問題。其發展歷程從2013年至今,推動了雲計算生態系統的演進。 Docker利用Linux內核技術實現進程隔離和資源限制,提高了應用的可移植性。在開發和部署中,Docker提升了資源利用率和部署速度,支持DevOps和微服務架構,但也面臨鏡像管理、安全性和容器編排的挑戰。

Docker和虛擬機各有優缺點,選擇應根據具體需求。 1.Docker輕量、快速,適合微服務和CI/CD,啟動快,資源佔用少。 2.虛擬機提供高隔離性和多操作系統支持,但資源消耗大,啟動慢。

Docker架構的核心概念是容器和鏡像:1.鏡像是容器的藍圖,包含應用及其依賴。 2.容器是鏡像的運行實例,基於鏡像創建。 3.鏡像由多個只讀層組成,容器運行時添加可寫層。 4.通過Linux命名空間和控制組實現資源隔離和管理。

Docker通過容器化技術簡化了應用程序的構建、部署和運行。 1)Docker是一個開源平台,使用容器技術打包應用及其依賴,確保跨環境一致性。 2)鏡像和容器是Docker的核心,鏡像為應用的可執行包,容器為鏡像的運行實例。 3)Docker的基本用法如運行Nginx服務器,高級用法如使用DockerCompose管理多容器應用。 4)常見錯誤包括鏡像下載失敗和容器啟動失敗,調試技巧包括查看日誌和檢查端口。 5)性能優化和最佳實踐包括鏡像優化、資源管理和安全性提升。

使用Kubernetes和Docker部署容器化應用的步驟包括:1.構建Docker鏡像,使用Dockerfile定義應用鏡像並推送到DockerHub。 2.在Kubernetes中創建Deployment和Service來管理和暴露應用。 3.使用HorizontalPodAutoscaler實現動態擴展。 4.通過kubectl命令調試常見問題。 5.優化性能,定義資源限制和請求,並使用Helm管理配置。

Docker是一個開源平台,用於開發、打包和運行應用程序,通過容器化技術解決應用在不同環境中的一致性問題。 1.構建鏡像:通過Dockerfile定義應用環境和依賴,使用dockerbuild命令構建。 2.運行容器:使用dockerrun命令從鏡像啟動容器。 3.管理容器:通過dockerps、dockerstop、dockerrm等命令管理容器生命週期。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具