Dockerで永続ストレージを実現する4つの方法それぞれのメリット/デメリット

デフォルトのDockerは永続ストレージをサポートしていなため、コンテナの削除によってデータも失われる。だが、ここで紹介する方法を使えば永続ストレージを利用できる。

2016年12月16日 08時00分 公開
[Chris EvansComputer Weekly]

 コンテナ技術を使えば、アプリケーションの作成、管理、実行を非常に効率化できる。例えば、「Docker」を実行する物理ホストは、スケジューリングとメモリリソースを効率的に使用して、数百のコンテナを同時に管理できる。

Computer Weekly日本語版 12月7日号無料ダウンロード

本記事は、プレミアムコンテンツ「Computer Weekly日本語版 12月7日号」(PDF)掲載記事の抄訳版です。本記事の全文は、同プレミアムコンテンツで読むことができます。

なお、同コンテンツのEPUB版およびKindle(MOBI)版も提供しています。

ボタンボタン

 コンテナは、基盤となるOSの機能を使用して、ネットワークやストレージにアクセスするアプリケーションに必要なプロセスを集約したものだ。

 コンテナ間のプロセスは、「cgroups」や「名前空間」などの運用特性によって分離される。そのため各コンテナには、サーバでインスタンスが1つだけ実行されているように見える。

 コンテナの当初の目的は、コンテナを一時的または過渡的なものにして、特定の需要やワークロードを管理できるようにすることだった。コンテナは必要なときにアプリケーションを実行するのに効果的な方法だ。だが、(デフォルトでは)コンテナを削除するとコンテナの全データが失われるという事実が、永続ストレージが望ましいというよりもむしろ必須であるデータベースなどのアプリケーションを実行する上で問題となる。

 Dockerには、コンテナの有効期間中に永続データを実現するメカニズムが用意されている。

 Dockerコンテナに永続ストレージを用意する方法には、

  • データボリューム
  • データボリュームコンテナ
  • ホストディレクトリのマウント
  • Dockerストレージプラグイン

の4つがある。

Dockerデータボリューム

 データボリュームは、ホストのファイルシステム内のディレクトリ(一般に「/var/lib/docker/volumes」)で、ここにコンテナの永続データを格納する。

ITmedia マーケティング新着記事

news058.jpg

次世代生成AIで優位に立つのはMeta? Google? それともマスク氏のあの会社?
生成AI時代において、データは新たな金と言える。より人間らしい反応ができるようになる...

news183.jpg

GoogleからTikTokへ 「検索」の主役が交代する日(無料eBook)
若年層はGoogle検索ではなくTikTokやInstagramを使って商品を探す傾向が強まっているとい...

news160.jpg

B2B企業の市場開拓で検討すべきプロセスを定義 デジタルマーケティング研究機構がモデル公開
日本アドバタイザーズ協会 デジタルマーケティング研究機構は、B2B企業が新製品やサービ...