Docker: ボリューム

Dockerボリュームでコンテナデータを永続化する方法

👋 Stackheroのドキュメントへようこそ!

Stackheroは、DockerクラウドCaaS (Containers as a Service) の即時利用可能なソリューションを提供し、多くの利点があります。例えば:

  • docker-compose up だけでコンテナを簡単に本番環境にデプロイ
  • HTTPSで保護されたカスタマイズ可能なドメイン名(例: https://api.your-company.com, https://www.your-company.com, https://backoffice.your-company.com)。
  • プライベートで専用のVMによる最適なパフォーマンスと強力なセキュリティ
  • ワンクリックでの簡単なアップデート

時間を節約し、生活を簡素化:StackheroのDocker CaaSクラウドホスティング ソリューションを試して、コンテナを本番環境にデプロイするのに5分しかかかりません!

設計上、Dockerコンテナは一時的です。つまり、コンテナ内に直接保存されたデータは、コンテナが削除されたり別のインスタンスに置き換えられたりすると失われます。データの永続性を確保するためには、Dockerボリュームが推奨される方法です。

Stackheroでバインドマウントを使用しないでください。 データ損失を防ぐために常にDockerボリュームを選択してください。

バインドマウントは、StackheroホストVMのディレクトリをコンテナにリンクすることを含みます。しかし、バインドマウントに依存すると、Stackhero for Dockerインスタンスを更新する際に、この方法で保存されたすべてのデータが失われます。

バインドマウントは通常、docker runコマンドで-v /myDirectory:/mntのような構文で指定されます(先頭の/に注意)。Docker Composeファイルでは、volumes: /myDirectory:/mntとして表示されます。これらの設定を禁止しないとデータを失います。

代わりに、Dockerによって管理され、絶対パスを参照しないDockerボリュームを使用してください。

要約すると:

誤ったアプローチ:

docker run -it -v /myDirectory:/mnt alpine

正しいアプローチ:

docker volume create myVolume
docker run -it -v myVolume:/mnt alpine

Docker Composeファイルを使用する場合:

誤った設定:

services:
  myService:
    image: alpine
    volumes:
      - /myDirectory:/mnt

正しい設定:

services:
  myService:
    image: alpine
    volumes:
      - myVolume:/mnt

volumes:
  myVolume:
    name: myVolume

Dockerボリュームを管理するためのクイックリファレンスです:

  • myVolumeという名前の新しいボリュームを作成するには、次を実行します:

    docker volume create myVolume
    
  • 既存のすべてのボリュームを一覧表示するには:

    docker volume ls
    
  • myVolumeという特定のボリュームを削除するには:

    docker volume rm myVolume
    

    注意:ボリュームを削除すると、その中に保存されているすべてのデータが永久に削除され、後で回復する方法はありません。