
我從下面的 Dockerfile 建置容器:
FROM ubuntu:14.04
...
RUN apt-get update && apt-get install -y vim
#RUN ssh-keygen -f /root/.ssh/id_rsa -N strongpass123$%^
RUN ssh-keygen -f /root/.ssh/id_rsa
...
ssh-keygen
我很少這樣做,但是在使用 of 之前和之後有很多命令。
我知道我可以從腳本開始docker exec -it thirsty_darwin sh script.sh
,然後標記圖像,然後使用容器(圖像)鏈接,但這不是我想要的那麼清晰的解決方案。
最糟糕的情況是ssh-add ~/.ssh/id_rsa
當我必須使用預期工具時。 Expect 工具已對我的密碼進行硬編碼。我不想做。
答案1
一般來說,您不應在 Docker 映像中包含任何機密。看這個答案有關此主題的更多資訊。
Docker 不支援互動式建置本期所述的充分理由。
如果你確實需要這樣做,你可以docker commit
像這樣使用:
docker build -t thirsty_darwin_base /path/to/Dockerfile
docker run -it --name=thirsty_darwin_changes thirsty_darwin_base /bin/bash
# do interactive stuff in the shell, then exit
docker commit thirsty_darwin_changes thirsty_darwin
現在thirsty_darwin
您的互動發生了變化。
更新:Docker 已發布更全面的機密管理自從寫了這個答案。