CodeGym /コース /Docker SELF /バインドの使い方

バインドの使い方

Docker SELF
レベル 19 , レッスン 4
使用可能

5.1 バインドマウントディレクトリのアイデア (bind mounts)

バインドマウント (bind mounts) を使ってホストのディレクトリをコンテナにマウントするのは、Dockerの強力な機能だよ。これでホストシステム上のファイルやディレクトリを直接コンテナで利用できるようになるんだ。特に開発、テスト、設定時には、ローカルファイルをコンテナにコピーしなくても使えるから超便利。この講義では、バインドマウントの使い方、具体例、そしてベストプラクティスを解説していくね。

バインドマウントでは、ホストシステムから特定のディレクトリやファイルをコンテナにマウントできるんだ。これはDockerによって管理され、特別なディレクトリに保存されるボリューム (volumes) とは違う。

バインドマウントのメリット

  1. ホストファイルへの直接アクセス: コンテナはホストのファイルを直接利用したり、編集したりできるよ。
  2. 開発の便利さ: 開発者がホスト上のファイルを変更すると、その変更がリアルタイムでコンテナに反映されるんだ。
  3. 柔軟性: ホスト上のどのディレクトリでもコンテナにマウント可能なんだよ。

バインドマウントのコマンド

バインドマウントは、コンテナを起動するときに-v または --mount パラメータを使用してマウントするんだ。

5.2 パラメーター-vの使用例

1. ホストディレクトリをコンテナにマウントする

ホストディレクトリをコンテナにマウントする基本的な例:

Terminal

docker run -d --name my_container -v /path/on/host:/path/in/container nginx

この例では、ホスト上のディレクトリ/path/on/hostがnginxコンテナ内のディレクトリ/path/in/containerにマウントされます。

2. ホストファイルをコンテナにマウントする

個別のファイルをマウントすることもできます:

Terminal

docker run -d --name my_container -v /path/on/host/config.conf:/etc/nginx/nginx.conf nginx

この例では、ホスト上の設定ファイルconfig.confがコンテナ内の設定ファイルnginx.confとしてマウントされます。

5.3 --mountパラメータの使用例

--mountパラメータは、さまざまなパラメータを指定して詳細にバインドディレクトリをマウントする方法を提供します。

1. --mountを使ったディレクトリのマウント

ターミナル

docker run -d --name my_container --mount type=bind,source=/path/on/host,target=/path/in/container nginx

この例は-vを使った前の例と類似していますが、より詳細な構文を使用します。

2. 読み取り専用モードでのマウント

ターミナル

docker run -d --name my_container --mount 
type=bind,source=/path/on/host,target=/path/in/container,readonly nginx

この例では、ディレクトリは読み取り専用モードでマウントされ、コンテナ内のファイルの変更が防止されます。

5.4 実用的な例

ウェブアプリを開発する際、ホスト上のソースコードディレクトリをコンテナにマウントすることができます。

ホスト上でソースコードのディレクトリを作成する:

Terminal

mkdir -p ~/my_web_app
echo "こんにちは、世界!" > ~/my_web_app/index.html

ディレクトリをマウントしてコンテナを起動する:

Terminal

docker run -d --name web_dev -v ~/my_web_app:/usr/share/nginx/html nginx

これで、ホスト上の ~/my_web_app ディレクトリに行われた変更は、即座にコンテナにも反映されます。

例 2: 設定ファイルの使用

ホスト上のディレクトリからコンテナに設定ファイルをマウントすることができます。

ホスト上で設定ファイルを作成する:

Terminal

echo "user www-data;" > ~/nginx.conf

echo "worker_processes auto;" >> ~/nginx.conf

設定ファイルをマウントしてコンテナを起動する:

Terminal

docker run -d --name nginx_custom -v ~/nginx.conf:/etc/nginx/nginx.conf nginx

この例では、ホスト上の Nginx 設定ファイルがコンテナ内で使用されています。

5.5 マウントされたディレクトリとファイルの確認

コンテナ内でコマンドを実行するために docker exec コマンドを使用して、マウントされたディレクトリやファイルの内容を確認できるよ。

ディレクトリの内容を確認する方法:

Terminal

docker exec -it my_container ls /path/in/container

ファイルの内容を確認する方法:

Terminal

docker exec -it my_container cat /path/in/container/config.conf

バインドされたディレクトリの削除

バインドされたディレクトリは Docker によって直接管理されていないから、削除はホストのファイルシステムレベルでする必要があるんだ。

ホストでバインドされたディレクトリを削除する方法:

Terminal

rm -r /path/on/host
1
Опрос
Dockerにおけるデータ管理,  19 уровень,  4 лекция
недоступен
Dockerにおけるデータ管理
Dockerにおけるデータ管理
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION