web-dev-qa-db-ja.com

ディレクトリをdockerコンテナーにバインドする

プロジェクトディレクトリ外のモジュールを必要とするテストプロジェクトを構築しています。プロジェクトフォルダーはdockerにあり、そのモジュールディレクトリをプロジェクトのdockerコンテナーにバインドしたいと思います。それをすることさえ可能ですか?それとも間違った質問をしていますか?ちなみに、私はまだdockerに慣れていないので、試しているだけです。

12
avian

私の理解では、ホストフォルダをコンテナにマウントする必要があります。だからこれを試してください:

docker run -v /Host/project_folder:/container/project -t avian/project_image bash

説明

  • -v---volume = []ボリュームのバインドマウント
  • /Host/project_folder-ホストサーバーのフォルダー
  • /container/project-コンテナのフォルダ

更新:

最新のdockerバージョン(v1.9.1)は、新しいコマンドvolumeをサポートします。したがって、Dockerでボリュームを管理しやすくする必要があります。

# For example, I need attach a volume to mysql container.
docker volume create --name mysql-data
docker run --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

これにより、データベースデータを失うことなく、いつでもコンテナmysqlを削除できます。

20
BMW

-vオプションを使用して、volume(フォルダなど)をコンテナにマウントできます。詳細は ドキュメントで をご覧ください。

例:ghostブログプラットフォームのDockerfileの例:

docker run -v /data/ghost:/var/lib/ghost -d ghost

ローカルドライブの/data/ghostをコンテナ内の/var/lib/ghostにマップします。

--volumes-fromオプションを使用して、データのsourceとして別のdockerコンテナーを指定することもできます。

5
musically_ut