Dockerボリュームを使用してローカルフォルダをバインドする方法


Dockerでは、ボリュームを使用してコンテナ内のファイルシステムを管理します。ボリュームは、コンテナ内のファイルの永続性とデータの共有を実現するために使用されます。ローカルフォルダをバインドする場合、ボリュームを作成し、それをコンテナにマウントする必要があります。

以下に、いくつかの方法とそれぞれのコード例を示します。

  1. Dockerコマンドを使用する方法:

    $ docker run -v /ローカルフォルダの絶対パス:/コンテナ内のマウントポイント -d イメージ名

    例:

    $ docker run -v /Users/ユーザ名/myapp:/app -d myapp-image
  2. Docker Composeを使用する方法: Docker Composeを使用すると、複数のコンテナを定義し、それらを簡単に管理できます。以下は、docker-compose.ymlファイルの例です。

version: '3'
services:
  myapp:
    image: myapp-image
    volumes:
      - /ローカルフォルダの絶対パス:/コンテナ内のマウントポイント

例:

version: '3'
services:
  myapp:
    image: myapp-image
    volumes:
      - /Users/ユーザ名/myapp:/app
  1. Dockerfileを使用する方法: Dockerfileを使用してイメージをビルドする際に、VOLUME命令を使用してボリュームを定義することもできます。以下はDockerfileの例です。
FROM myapp-base-image
VOLUME /コンテナ内のマウントポイント

例:

FROM myapp-base-image
VOLUME /app

これらの方法を使用することで、ローカルフォルダをDockerコンテナにバインドすることができます。バインドされたフォルダ内の変更は即座にコンテナに反映され、コンテナ内での変更もホストマシンのフォルダに反映されます。