Security

如何在沒有 swarm 集群的情況下使用 docker secrets?

  • February 18, 2019

目前我們是在單個 docker 容器上執行的應用程序,應用程序需要將各種敏感數據作為環境變數傳遞,

我將它們放在執行命令上,這樣它們就不會出現在映像中,然後出現在儲存庫中,但是我最終得到了一個非常不安全的執行命令,

現在,我知道存在 docker 機密,但是,我如何在不部署集群的情況下使用它們?或者有沒有其他方法來保護這些數據?

最好的祝福,

你不能……它不支持沒有 Swarm 的秘密。除非’‘可能’‘你’‘Swarm’‘只使用一個節點。

另一種解決方案是,我認為使用像這樣的第三方保險庫軟體:

https://www.vaultproject.io/

但是,要使用 Vault 中容器中的秘密,您需要閱讀文件。

希望這能讓您走上正確的開始道路。

的,如果您使用撰寫文件,您可以使用機密。(您不需要執行 swarm)。

您將 compose 文件與docker-compose一起使用:在 docker-compose.yml 文件中有“秘密”的文件

我切換到 docker-compose 因為我想使用秘密。我很高興我做到了,它看起來更乾淨了。每個服務映射到一個容器。而且,如果您想切換到執行 swarm,那麼您基本上已經在那裡了。

注意:秘密不會載入到容器的環境中,它們會掛載到 /run/secrets/

這是一個例子:

1)項目結構:

|
|---    docker-compose.yml
|---    super_duper_secret.txt
  1. docker-compose.yml 內容:
version: "3.6"

services:

 my_service:
   image: centos:7
   entrypoint: "cat /run/secrets/my_secret"
   secrets:
     - my_secret

secrets:
 my_secret:
   file: ./super_duper_secret.txt
  1. super_duper_secret.txt 內容:
Whatever you want to write for a secret really.
  1. 從項目的根目錄執行此命令,以查看容器確實可以訪問您的密鑰,(Docker 必須正在執行並安裝了 docker-compose):
docker-compose up --build my_service

你應該看到你的容器輸出你的秘密。

引用自:https://serverfault.com/questions/871090