Security
如何在沒有 swarm 集群的情況下使用 docker secrets?
目前我們是在單個 docker 容器上執行的應用程序,應用程序需要將各種敏感數據作為環境變數傳遞,
我將它們放在執行命令上,這樣它們就不會出現在映像中,然後出現在儲存庫中,但是我最終得到了一個非常不安全的執行命令,
現在,我知道存在 docker 機密,但是,我如何在不部署集群的情況下使用它們?或者有沒有其他方法來保護這些數據?
最好的祝福,
你不能……它不支持沒有 Swarm 的秘密。除非’‘可能’‘你’‘Swarm’‘只使用一個節點。
另一種解決方案是,我認為使用像這樣的第三方保險庫軟體:
但是,要使用 Vault 中容器中的秘密,您需要閱讀文件。
希望這能讓您走上正確的開始道路。
是的,如果您使用撰寫文件,您可以使用機密。(您不需要執行 swarm)。
您將 compose 文件與docker-compose一起使用:在 docker-compose.yml 文件中有“秘密”的文件。
我切換到 docker-compose 因為我想使用秘密。我很高興我做到了,它看起來更乾淨了。每個服務映射到一個容器。而且,如果您想切換到執行 swarm,那麼您基本上已經在那裡了。
注意:秘密不會載入到容器的環境中,它們會掛載到 /run/secrets/
這是一個例子:
1)項目結構:
| |--- docker-compose.yml |--- super_duper_secret.txt
- 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
- super_duper_secret.txt 內容:
Whatever you want to write for a secret really.
- 從項目的根目錄執行此命令,以查看容器確實可以訪問您的密鑰,(Docker 必須正在執行並安裝了 docker-compose):
docker-compose up --build my_service
你應該看到你的容器輸出你的秘密。