1. ホーム
  2. docker

[解決済み] 既存のDockerコンテナにボリュームを追加するにはどうすればよいですか?

2022-03-21 12:59:02

質問

UbuntuにDockerをインストールし、実行するだけで作成したDockerコンテナがあるのですが、このコンテナはどうすればいいのでしょうか?

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

早速、Javaやその他のツールのインストールを開始し、しばらく過ごして、コンテナの停止を

exit

そして、ボリュームを追加しようと思ったのですが、これが思ったほど簡単ではないことに気づきました。もし私が sudo docker -v /somedir run ... となると、新しいコンテナができてしまうので、ボリュームをマウントしたコンテナにするために、Javaをインストールしたり、以前からやっていることをしなければなりません。

ホストからのフォルダのマウントに関するすべてのドキュメントは、ボリュームのマウントはコンテナの作成時にできるものであることを示唆しているようです。そのため、新しいコンテナを一から設定し直すことを避けるための唯一の選択肢は、既存のコンテナをリポジトリにコミットし、それを新しいコンテナのベースとして使用しながら、ボリュームをマウントすることです。

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

解決方法は?

既存のコンテナをコミットし(つまり、コンテナの変更から新しいイメージを作成し)、新しいマウントでそれを実行することができます。

$ 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

問題なければ、古いコンテナを停止して、この新しいコンテナを使用してください。

以上です(笑)