跳過到頁腳內容
使用 IRONSECUREDOC

Docker 容器列表(開發者如何工作)

在當今快節奏的軟體開發環境中,應用程式的高效部署和管理至關重要。 Docker 已成為在輕量級、可移植容器中自動部署應用程式的領先解決方案。 Docker 透過封裝應用程式及其相依性,確保從本地開發到生產環境等不同環境下的效能一致性。

這種容器化技術簡化了可擴展性和資源管理,使其成為現代 DevOps 實踐和持續整合/持續部署 (CI/CD) 管道中必不可少的工具。 在本文中,我們將探討 Docker 的基礎知識、容器的概念,以及它如何增強應用程式的部署流程,並深入了解IronSecureDoc ,這是一款利用 Docker 實現可擴展解決方案的文件安全工具。

什麼是 Docker?

Docker是一個開源環境,可自動將應用程式部署到輕量級、可移植的容器中。 容器將應用程式及其所有依賴套件打包在一起,使得無論應用程式在何處執行,其運作方式都完全相同; 無論是在開發人員的筆記型電腦上、測試伺服器上,或是在生產環境中。 Docker 透過將應用程式與底層基礎架構隔離來提高效率,從而允許多個容器在同一台主機上並行運作。

Docker 容器清單(開發者使用方法):圖 1 - Docker 容器的使用案例

這簡化了可擴展性和資源管理; 借助 Docker,開發到生產的工作流程變得更加輕鬆和精簡,因此 Docker 成為現代 DevOps 和 CI/CD 管道的關鍵參與者。

什麼是容器?

容器是一個輕量級的、自包含的、可執行的軟體包,其中包含運行軟體所需的一切——從程式碼和運行時到系統工具、庫和設置,全部打包在一個軟體包中。 這是一個與主機和其他容器隔離的環境,但共享相同的作業系統內核,因此與傳統虛擬機相比,效率更高、速度更快。

Docker 容器清單(開發者使用方法):圖 2 - Docker 容器視覺化

Docker容器的設計初衷就是為了方便移植。 如果軟體開發人員可以在筆記型電腦上執行該程式進行開發,測試人員可以在伺服器上執行該程式進行測試,那麼理想情況下,雲端環境或生產環境也可以運行相同的容器堆疊。 容器的可移植性、隔離性和可擴展性相結合,使 Docker 成為現代軟體部署和 CI/CD 管線必不可少的工具。

容器恰好是 Docker 功能的核心,透過容器,開發人員可以確保應用程式無論部署在何處都能以相同的方式運作。

列出 Docker 容器

使用 Docker 執行的操作之一是列出容器,這樣您就可以監控容器的狀態,甚至更好地管理它們。 Docker 提供了相應的命令來實現這種操作,具體選擇取決於您是否只想列印正在運行的容器,還是只想列印所有容器(包括已停止的容器)。

以下是列出 Docker 容器的方法:

1. 列出正在運行的容器

若要僅列出目前正在運行的容器,請使用下列命令:

docker ps
docker ps
SHELL

此命令將產生以下列:

*容器 ID:容器的唯一識別碼。

  • Image:建立容器所基於的 Docker 映像。
  • Command:容器正在執行的指令。
  • Created:容器創建至今已有多長時間。
  • Status:容器是否正在運作或已退出。
  • Ports:主機連接埠與容器連接埠的對應。
  • Names:分配給容器的名稱,可以自動生成,也可以手動設定。

Docker 容器清單(開發者使用方法):圖 3 - 'docker ps' 指令輸出範例

您也可以使用較新的命令"docker container ls",但我們將重點介紹"docker ps"命令語法。

2. 列出所有容器(運轉中和已停止)

若要顯示所有正在運作和已停止的容器,請使用 -a 標誌:

docker ps -a
docker ps -a
SHELL

此命令傳回與 docker ps 相同的列,但包括已停止或已退出的容器,或所有已建立的容器。 該命令對於管理已停止的容器或排查已崩潰或已退出的容器中的問題非常有用。

Docker 容器清單(開發者使用方法):圖 4 - 指令"docker ps -a"的輸出

3. 僅列出容器 ID

如果您只需要顯示容器 ID(這對於編寫腳本或自動化操作很有用),則可以使用 -q 標誌:

docker ps -q
docker ps -q
SHELL

命令 docker ps -q 將只列印正在執行的容器 ID,方便您將這些 ID 提供給其他 Docker 命令以執行批次操作。

例如,可以透過將此與 docker stop 結合使用來停止所有正在運行的容器:

docker stop $(docker ps -q)
docker stop $(docker ps -q)
SHELL

Docker 容器清單(開發者使用方法):圖 5 - 指令

4. 篩選容器列表

您也可以使用 --filter 選項,依照指定的條件篩選 docker ps 指令的輸出。 以下範例僅按狀態列出容器:

docker ps -f "status=exited"
docker ps -f "status=exited"
SHELL

這將僅列出已退出的容器。 您可以按圖像名稱、標籤或任何其他自訂條件(如連接埠或名稱)進行篩選。

Docker 容器清單(開發者使用方法):圖 6 - 過濾指令的輸出

5. 格式化輸出

為了提高可讀性或自訂輸出,Docker 允許您使用 --format 選項來格式化結果。 例如,若要僅列出容器的 ID 和名稱,可以使用:

docker ps --format "{{.ID}}: {{.Names}}"
docker ps --format "{{.ID}}: {{.Names}}"
SHELL

當您在腳本或工具中使用 Docker 容器管理時,可能需要某些資訊,這將特別有幫助。

Docker 容器清單(開發者使用方法):圖 7 - 格式化的 docker ps 指令輸出

什麼是 IronSecureDoc?

IronSecureDoc是一款文件安全工具,旨在透過提供加密、編輯和數位簽章功能來保護敏感文件。 它允許用戶保護 PDF 文檔,控制其擁有的個人和機密資料。 一些功能包括密碼保護、符合 PDF/A 等標準以及數位認證(通常用於法律、醫療保健或金融領域)。 該軟體以 REST API 的形式提供,使其能夠高度整合到不同的工作流程中,並且可以部署在 Docker 上,以實現可擴展的、雲端友善的安全解決方案。

Docker 容器清單(開發者使用方法):圖 8 - IronSecureDoc 網頁

IronSecureDoc 的功能

IronSecureDoc 在 PDF 安全處理和文件管理方面表現出色。 其功能包括加密、編輯和數位簽章:

*加密:*它提供 PDF 文件加密,採用 128 位元或 256 位元加密,並具有基於密碼的安全機制,以維護資料機密性。 編輯:此功能可刪除機密數據,例如個人識別碼或其他敏感訊息,從而確保符合隱私標準和法規。 數位簽章:此功能具有數位簽章功能,可對支援 .pfx 或 .p12 格式的 PDF 檔案進行公證,從而確保文件的真實性。 合規性:**確保符合 PDF/A 和 PDF/UA 標準,這對存檔和存取具有重要意義。

  • REST API:它具有靈活的 REST API,可以與其他軟體和工作流程整合。 *文件版本控制:提供版本控制以追蹤所有變更和版本管理,從而更好地控製文件。
  • Docker 整合:與 Docker 的原生整合有助於在可擴展的雲端或本地環境中更輕鬆地部署。

這些特性使其成為處理法律、醫療服務或金融領域敏感文件的強大工具。

如何將 IronSecureDoc 拉入 Docker 容器

開啟終端機視窗或命令提示符,並使用以下命令從儲存庫中拉取 IronSecureDoc Docker 映像:

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker 容器清單(開發者使用方法):圖 9 - 拉取 IronSecureDoc Docker 映像的控制台輸出

從容器運行 IronSecureDoc

現在容器已經拉取了鏡像,我們可以執行另一個指令來啟動一個名為 IronSecureDoc 的運作容器。 我們可以使用 -p 標誌進行連接埠映射,或使用 --rm 標誌在停止容器後刪除容器:

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

Docker 容器清單(開發者使用方法):圖 10 - 從容器執行 IronSecureDoc 的控制台輸出

將 IronSecureDoc 與 Docker 容器結合使用

如前所述,IronSecureDoc 在 Docker 中安裝並啟動後,可以使用其 REST API 對文件進行編輯、認證和加密。 在 Docker 容器中啟動 IronSecureDoc 後,請造訪此連結以取得帶有 Swagger UI 的API 端點和文件:http://localhost:8080/swagger/index.html

Docker 容器清單(開發者使用方法):圖 11 - 用於 API 端點互動的 Swagger UI

例如,您可以向 IronSecureDoc API 發送 POST 請求來提交文件進行加密:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

此請求會將文件傳送至 IronSecureDoc,並套用所需的加密。

結論

諸如"docker ps"和"docker ps -a"之類的命令,使得對正在運行和已停止的容器進行簡單的監控、維護和管理,從而提高了Docker容器的管理效率。 這些命令可以幫助開發人員和系統管理員在不同的環境中過濾、格式化和操作容器,從而實現有效的應用程式管理。

IronSecureDoc以 Docker 容器的形式,簡化了文件安全功能(如加密、編輯和數位簽章)的部署和擴展,從而確保在不同平台上保持效能和安全性。 要了解有關 IronSecureDoc 許可的更多信息,請點擊此處。 此外, Iron Software還提供各種產品來提升您的開發項目,您可以在這裡了解更多資訊。

常見問題解答

Docker 如何自動化應用程序的部署?

Docker 通過將應用程序及其所有依賴打包到輕量級、可攜帶的容器中來自動化應用程序的部署。這確保應用程序在從開發到生產的不同環境中一致運行。

為什麼容器對於現代軟體開發如此重要?

容器很重要,因為它們提供了一個包含所有應用程序所需依賴的自包含環境。這種隔離導致性能一致,並簡化了現代 DevOps 實踐所需的可擴展性和資源管理。

如何列出正在運行的 Docker 容器?

您可以使用 docker ps 命令列出正在運行的 Docker 容器。此命令提供了容器 ID、映像、狀態等信息。

哪個命令列出所有 Docker 容器,包括那些已停止的?

要列出所有 Docker 容器,包括已停止的,請使用 docker ps -a 命令。這對於管理和故障排除 Docker 容器很有幫助。

如何根據特定條件過濾 Docker 容器?

可以使用 --filter 選項過濾 Docker 容器列表。例如,docker ps -f "status=exited" 只顯示已退出的容器。

使用 Docker 進行文件安全應用程序有哪些優勢?

將 Docker 用於像 IronSecureDoc 這樣的文件安全應用程序可以提供可擴展性和靈活性。它允許在安全、可擴展的環境中無縫集成和部署加密、編輯和數字簽名等功能。

如何獲取文件安全工具的 Docker 鏡像?

您可以使用終端中的命令 docker pull ironsoftwareofficial/ironsecuredoc 來獲取文件安全工具的 Docker 鏡像。

哪些特性使文件安全工具適合於 Docker 環境?

適合於 Docker 環境的文件安全工具,例如 IronSecureDoc,包括 PDF 加密、編輯、數字簽名和用於集成的 REST API 等功能,所有這些都可以在容器中有效地部署和管理。

如何自定義 Docker 命令輸出以提高可讀性?

您可以在Docker命令中使用--format選項來自定義輸出。例如,docker ps --format "{{.ID}}: {{.Names}}"將顯示僅容器的ID和名稱。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我