Dockerでマウントしたファイルの変更を反映させる方法

Dockerコンテナ内でマウントしたファイルの変更を有効にするには、以下の方法があります。

  1. 変更したファイルをDocker cpコマンドでホストOSにコピーし、コンテナに再マウントする。まずコンテナ内部に入り、変更したいファイルを探して変更する。その後、Docker cpコマンドで変更したファイルをホストOSの指定ディレクトリにコピーする。最後に、コンテナを再実行する際に変更したファイルをマウントボリュームとしてコンテナにマウントする。
  2. コンテナ内でファイルを変更する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
    “`

  3. 変更を加えたコンテナから、docker commit コマンドで新しいイメージを生成して、再度実行します。まず、コンテナ内部に入って、変更を加えたいファイルを見付けて編集します。次に、docker commit コマンドで変更を加えたコンテナから新しいイメージを生成します。最後に、新しいイメージでコンテナを再実行します。
  4. # コンテナ内部に入り、ファイルを修正する
    docker exec -it コンテナ名 /bin/bash
    # ファイルを修正する
    vim /path/to/file# 新しいイメージを作成する
    docker commit コンテナ名 新しいイメージ名

    # 新しいイメージを使ったコンテナを起動する
    docker run -v /ホストパス:/path/to/file 新しいイメージ名

  5. Dockerfileを使ってイメージを再構築します。修正済みのファイルをDockerfileに含めてdocker buildを実行してイメージの再構築を行います。DockerfileではCOPYやADDを使って、修正後のファイルをコンテナにコピーします。
  6. Dockerfile
    FROM ベースイメージ#変更したファイルをコンテナーにコピー
    COPY /ホスト/パス/ファイル /パス/ファイル
  7. 新しいイメージを使い、コンテナーを再実行します。docker run -v /host/path:/path/to/file new_image_name

いずれの方法も、コンテナ内部でファイルを編集してから、編集後のファイルをホストにコピーするか、イメージを再構築して、コンテナを再実行することで変更を有効にします。

广告
広告は10秒後に閉じます。
bannerAds
bannerAds