既存のDockerコンテナにボリュームを追加するにはどうすればいいですか? 質問する

既存のDockerコンテナにボリュームを追加するにはどうすればいいですか? 質問する

Ubuntu に Docker をインストールして以下の操作を実行するだけで、Docker コンテナを作成しました。

sudo docker run -i -t ubuntu /bin/bash

私はすぐにJavaと他のツールをインストールし、しばらく時間を費やした後、コンテナを停止しました。

exit

その後、ボリュームを追加したいと思ったのですが、思ったほど簡単ではないことに気付きました。 を使用するとsudo docker -v /somedir run ...、新しいコンテナーが作成されるため、マウントされたボリュームを持つコンテナーに到達するために、Java をインストールして、以前に実行したことを実行する必要があります。

ホストからフォルダーをマウントすることに関するすべてのドキュメントは、ボリュームのマウントはコンテナーの作成時に実行できることを暗示しているようです。したがって、新しいコンテナーを最初から再構成することを回避する唯一のオプションは、既存のコンテナーをリポジトリにコミットし、ボリュームをマウントするときにそれを新しいコンテナーのベースとして使用することです。

これが本当に既存のコンテナにボリュームを追加する唯一の方法なのでしょうか?

ベストアンサー1

既存のコンテナをコミットし (コンテナの変更から新しいイメージを作成します)、新しいマウントを使用して実行できます。

例:

$ docker ps  -a

CONTAINER ID        IMAGE                 COMMAND                  CREATED              STATUS                          PORTS               NAMES
5a8f89adeead        ubuntu:14.04          "/bin/bash"              About a minute ago   Exited (0) About a minute ago                       agitated_newton

$ docker commit 5a8f89adeead newimagename
$ docker run -ti -v "$PWD/somedir":/somedir newimagename /bin/bash

問題がなければ、古いコンテナを停止し、新しいコンテナを使用します。

コンテナの名前を使用してコミットすることもできます。例:

docker commit agitated_newton newimagename

それでおしまい :)

おすすめ記事