2016-03-30 12 views
1

実行中のドッカーコンテナ内のファイルを編集して再起動しましたが、残念ながら最後の編集が正しくありませんでした。ですから、コンテナを始めるたびに:終了したドッカー内のファイルを編集するには?

docker start <containerId> 

いつもすぐに終了します。

docker exec -it <containerId> bash 

のみ実行されているドッキングウィンドウ上で実行することができますので、

今、私も、戻って私の編集を変更することはできません。

質問をどうやって変更して今すぐコンテナを再起動できますか?または、それを放棄して既存のイメージから新しいコンテナを開始する必要がありましたか?

+1

新鮮な容器から始める必要はありません – tpbowden

+0

あなたがしたいことが本当に分かっていない限り、あなたは*できるはずはありません。 (下記参照) – ThatsNinja

答えて

2

あなたは、あなたのコンテナの目的、またはあなたが変更したものに関する詳細を提供しませんでした。概念的には、あなたがそれを起動したときのように、ファイルシステムおよびmount that file into the container as a volume上の場所に変更する必要があるファイルを作成することができます。

docker run -it -v /Users/<path_to_file>:<container_path_to_file> <container> 

Hoveverあなたのコンテナがその時に移植性を失うように、これは悪いフォームは、ありますポイントはcommitting a new imageなし。

Dockerコンテナ内で行う必要がある変更は、Dockerfileで行い、コンテナイメージは再構築するのが理想的です。このようにして、最初の作業中のコンテナの状態がDockerfileコードで表現され、設定を繰り返し、移植可能で不変にします。

+0

ええ、そうです。私はちょうど設定を変更し、イメージを再構築すると思っていますsomeshow遅いです。変更が有効かどうかを確認したいので、コンテナ内で直接編集し、デバッグの結果を確認します。 – xidui

+0

確かに、私が考えることができる最善の方法は、上記のようなボリュームマウントです。既存のコンテナイメージ内のファイルを破壊してしまった場合は、その方法を使用して不正なファイルを正常なものに置き換えて、少なくともコンテナに入れます。その後、コンテナの外にあるファイルを編集して変更をテストし、自分をロックアウトする心配はありません。 – ThatsNinja