Dockerでマウントしたファイルの変更を反映させる方法
Dockerコンテナ内でマウントしたファイルの変更を有効にするには、以下の方法があります。
- 変更したファイルをDocker cpコマンドでホストOSにコピーし、コンテナに再マウントする。まずコンテナ内部に入り、変更したいファイルを探して変更する。その後、Docker cpコマンドで変更したファイルをホストOSの指定ディレクトリにコピーする。最後に、コンテナを再実行する際に変更したファイルをマウントボリュームとしてコンテナにマウントする。
- コンテナ内でファイルを変更する1. コンテナ内に入る
“`
docker exec -it container_name /bin/bash
“`2. ファイルを変更する
“`
vim /path/to/file
“`3. ファイルをホストにコピーする
“`
docker cp container_name:/path/to/file /host/path
“`4. コンテナを再起動し、変更したファイルをマウントする
“`
docker run -v /host/path:/path/to/file image_name
“` - 変更を加えたコンテナから、docker commit コマンドで新しいイメージを生成して、再度実行します。まず、コンテナ内部に入って、変更を加えたいファイルを見付けて編集します。次に、docker commit コマンドで変更を加えたコンテナから新しいイメージを生成します。最後に、新しいイメージでコンテナを再実行します。
- # コンテナ内部に入り、ファイルを修正する
docker exec -it コンテナ名 /bin/bash
# ファイルを修正する
vim /path/to/file# 新しいイメージを作成する
docker commit コンテナ名 新しいイメージ名# 新しいイメージを使ったコンテナを起動する
docker run -v /ホストパス:/path/to/file 新しいイメージ名 - Dockerfileを使ってイメージを再構築します。修正済みのファイルをDockerfileに含めてdocker buildを実行してイメージの再構築を行います。DockerfileではCOPYやADDを使って、修正後のファイルをコンテナにコピーします。
- Dockerfile
FROM ベースイメージ#変更したファイルをコンテナーにコピー
COPY /ホスト/パス/ファイル /パス/ファイル - 新しいイメージを使い、コンテナーを再実行します。docker run -v /host/path:/path/to/file new_image_name
いずれの方法も、コンテナ内部でファイルを編集してから、編集後のファイルをホストにコピーするか、イメージを再構築して、コンテナを再実行することで変更を有効にします。