2015-02-09 43 views
4

如何處理docker容器的主機特定配置?dockerized應用程序的配置

最重要的是生產密碼。出於安全原因,他們不能放在容器中。此外,他們需要定期更換,不會重新部署任何東西。

+3

當你運行你的容器時,你可以用'-e pass = abcdef'來傳遞它,參見運行語法http://docs.docker.com/reference/commandline/cli/#run – user2915097 2015-02-09 10:28:43

回答

1

我一直都用卷容器,如果我真的希望避免該圖像:http://docs.docker.com/userguide/dockervolumes/

但是,我做的事情一樣

FROM myapp 
ADD password.file /etc 
RUN do some cfg 

,使在烤密碼特定圖像

這樣的具體配置列表的密碼不被重複使用和已知的普通圖像,但它們是建立和運行它在主機上的圖像。 (這種方法是不是真的用木偶/廚師等自定義虛擬機/服務器上的文件很大的不同 - 它最終需要打文件系統在一個安全的,但可重複的方式)

+0

糟糕的想法來烘焙密碼成圖像。我假設你從不將圖像推入共享存儲庫?這是一個很大的危險......共享映像將導致每個容器實例使用相同的未加密證書(也可能直接讀出圖像)......廚師是不一樣的,它支持加密數據包(和保險庫)保守祕密安全。我假設木偶是一樣的。 – 2015-02-09 21:51:18

+0

我從不將圖像從服務器推送到註冊表。但是,是的,你總是必須研究如何減輕工作流程中的風險。 – SvenDowideit 2015-02-10 22:50:06

1

正如一位評論說,使用環境您可以通過-e pass=abcdef傳遞變量。您也可以將它們保存在一個fig.yml配置文件中,以避免每次都輸入它們。

+0

此外,如果你使用Kubernetes有祕密:http://kubernetes.io/docs/user-guide/secrets/ – dukebody 2016-06-01 08:23:19

+1

使用環境變量來傳遞機密被官方認爲是一個**壞主意**。引用來自[祕密:寫作最佳實踐,做與不做,路線圖](https://github.com/docker/docker/issues/13490):「用於祕密的特徵/黑客:環境變量,構建時環境變量,標記..壓扁/展平圖層,卷,手動構建容器,自定義hack「。 – Kolargol00 2016-07-28 07:15:45