跳至頁尾內容
USING IRONSECUREDOC

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

在今天快速變化的軟體開發環境中,高效的應用程式部署和管理至關重要。 Docker 已成為自動化部署應用程式的領先解決方案,使用輕量且可移植的容器。 通過封裝應用程式及其依賴項,Docker 確保了從本地開發到生產的不同環境中性能的一致性。

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

什麼是Docker?

Docker 是一個開源環境,可以在輕量且可移植的容器中自動化應用程式的部署。 容器將應用程式包裝為所有依賴包,以便無論應用程式在哪執行,它都將以完全相同的方式運行; 無論是在開發者的筆記型電腦上、測試伺服器上,還是在生產環境中。 Docker 透過將應用程式與底層基礎設施隔絕,提高了效率,允許多個容器在同一主機上並行運行。

Docker 容器列表(對開發者的工作原理):圖 1 - 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 命令的輸出

T>## 什麼是IronSecureDoc?

IronSecureDoc 是一款設計用於保護敏感文件的文件安全工具,提供加密、編輯和數位簽名功能。 它允許使用者保護 PDF 文件,控制其掌握的個人和機密資料。 一些特性包括密碼保護、符合 PDF/A 等標准,以及數位認證,這通常用於法律、醫療或金融領域。 該軟體作為一個 REST API 提供,易於整合到不同工作流程中,並且可以在 Docker 上部署以獲得可擴展的雲端友好安全解決方案。

Docker 容器列表(對開發者的工作原理):圖 8 - IronSecureDoc 網頁

IronSecureDoc 的特點

IronSecureDoc 在 PDF 安全處理和文件管理方面相當令人印象深刻。 其功能包括加密、編輯和數位簽名:

  • 加密: 它提供 128 或 256 位的加密的 PDF 文件加密,以及基於密碼的安全性以維持資料的機密性。
  • 編輯: 該功能移除機密資料,如個人識別資訊或其他敏感資訊,從而確保遵守隱私標準和法規。
  • 數位簽名: 它具有數位簽名功能,支援 .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 的控制台輸出

在 Docker 容器中使用 IronSecureDoc

如前所述,IronSecureDoc 安裝並在 Docker 中啟動後,可以使用其 REST API 來編輯、認證和加密文件。 一旦您在 Docker 容器中啟動了 IronSecureDoc,就可以存取此連結以獲取 API 端點和使用 Swagger UI 的文件: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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

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