GNU/Linux >> Linux の 問題 >  >> Ubuntu

Dockerコンテナ間でデータを共有する方法

はじめに

Dockerを使用すると、ユーザーは、ホストコンピューターから分離されたさまざまなアプリケーションを実行できます。実行するために、個別のオペレーティングシステムを用意する必要はありません。代わりに、仮想マシンのハイパーバイザーと同様の役割を持つコンテナー化エンジン(Dockerデーモン)を使用してDockerコンテナーをインストールおよび管理します。

Dockerの使用を開始すると、コンテナー間でデータを共有する方法を知る必要がある状況に直面します。

前提条件

  • sudo権限を持つユーザー
  • 端末/コマンドラインへのアクセス
  • Dockerの安定リリース

ステップ1:データボリュームのあるコンテナを作成する

2つのコンテナ間で共有する方法を示すには、コンテナを作成する必要があります Container1 データボリューム datavolume1 後で共有できます。

1.まず、2つのDockerコンテナ間で共有する独立したボリュームを作成します。

docker volume create --name DataVolume1

2.次に、Dockerコンテナーを作成し、 Container1という名前を付けます。 次のコマンドを実行して、データボリュームを接続します。

docker run -ti --name=Container1 -v DataVolume1:/datavolume1 ubuntu

2.次に、データボリュームにファイルを作成し、それにテキストを追加します。

echo "Share this file between containers" > /datavolume1/Example.txt

3.次のコマンドでコンテナを終了します: exit

ステップ2:新しいコンテナを作成してデータボリュームに追加する

次に、新しいコンテナを作成します Container2 Container1とファイルを共有します

1. Container2を作成します Container1からボリュームをマウントします

docker run -ti --name=Container2 --volumes-from Container1 ubuntu

2. Container2からテキストを追加します 両方のコンテナがDataVolume1に書き込めることを示すため

echo "This will also appear in DataVolume1" >> /datavolume1/Example.txt

3. Container2を終了するには 次のコマンドを使用します: exit

ステップ3:Dockerコンテナ間でデータを共有できることを確認する

1. Container1を再起動します データボリュームの変更を確認するには:

docker restart Container1

2.両方のコンテナが同じデータボリュームに対して読み取りと書き込みを実行できること、および Container2に書き込んだテキストを確認します。 DataVolume1に表示されます

cat /datavolume1/Example.txt

テキストがデータボリュームに正常に追加された場合、出力には次のように表示されます。

Share this file between containers
This will also appear in DataVolume1

3.終了するには、次のコマンドを使用してコンテナーを終了します: exit

オプション:読み取り専用ボリュームを作成する

「読み取り専用」のDockerコンテナを作成すると、他のユーザーがデータに変更を加えることができなくなり、ファイルの表示のみが可能になります。

:roを追加します 共有する必要があるが変更しないコンテナ名に変更します。

次の例では、 Container2 Container1からのファイルを表示できるようになります ただし、編集することはできません。

docker run -ti --name=Container2 --volumes-from Container1:ro ubuntu

Container2かどうかを確認するには 読み取り専用の権限がある場合は、サンプルファイルを Container1から削除してみてください コマンドを実行する:

rm /datavolume1/Example.txt

出力には、読み取り専用ファイルが正常に作成されたことが示されます。その結果、他のコンテナはデータにアクセスして表示できますが、データに貢献したり変更したりすることはできません。


Ubuntu
  1. Ubuntu22.04のDockerコンテナ間でデータを共有する方法

  2. DockerComposeの使用方法

  3. Dockerコンテナを接続する方法

  1. 環境変数をDockerコンテナに渡す方法

  2. Dockerコンテナ間でデータを共有する方法

  3. Dockerコンテナを一覧表示する方法

  1. Dockerコンテナを一覧表示/開始/停止する方法

  2. Dockerとは何ですか?

  3. すべての Docker コンテナーを削除する方法