次の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がリリースされました。より包括的な機密メンテナンスこの答えを書いて以来。