跳至頁尾內容
使用 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
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 - 指令"docker ps -q"的輸出

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 環境?

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

如何自訂 Docker 命令輸出以提高其可讀性?

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

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。