《Docker》初心者エンジニアがコンテナとボリュームの違いについて解説

docker

ボリュームの基本知識

ボリュームとは

コンテナを破壊するとデータも同時に破壊されてしまうので、保存しておきたいデータはコンテナの外にボリュームとして保存します。つまり、ボリュームはハードウエア上の記憶装置のことを指しています。

マウントとは

記憶装置や周辺機器などをOSに認識させることで、利用可能な状態にすることをマウントと言います。実例として、記憶装置(ボリューム)にdocumentというフォルダがあるとします。このdocumentフォルダをコンテナAで使えるように設定、利用可能な状態にすることなどが挙げられます。

見えるボリュームと見えないボリューム

ボリュームにはユーザーから見えるボリュームと見えないボリュームが存在します。

種類

特徴

見えるボリューム

ホスト側のディレクトリにある

見えないボリューム

Dockerのリソースにある

ホスト側から見えないボリュームを見るために以下の volume コマンドを叩いてみましょう。

現在Dockerのリソースにあるボリュームを参照することができます。

厳密なボリュームの種類

  1. Bind
  2. Volume
  3. Temps

ボリュームは厳密には3種類あります。

Bind

Dockerホストのファイルやディレクトリをコンテナ上にマウントする機能です。
バインドマウントを行うと、コンテナの外にあるファイルを、コンテナの中から読み書き可能になります。

引用:「Docker】第5回 マウントについて(bind)」

【Docker】第5回 マウントについて(bind)/札幌のAI・IoT・システム開発|ITイノベーション/最先端技術|パブリックリレーションズ
【Docker】第5回 マウントについて(bind) - 札幌のAI・IoT・システム開発|ITイノベーション/最先端技術|パブリックリレーションズ

DockerホストっていうのはDocker engineが動作している仮想マシンのことです。つまりBindは仮想マシンないのファイルをコンテナに共有できるということになります。

Volume

Docker が管理するデータ領域を コンテナ上にマウントする機能です。
バインドマウントとの違いは、バインドマウントが「Dockerが管理するデータ領域以外もマウント可能である」ことに対し、ボリュームマウントは「Dockerが管理するデータ領域内でのマウントのみ可能である」という点です。

引用:「Docker】第5回 マウントについて(bind)」

【Docker】第5回 マウントについて(bind)/札幌のAI・IoT・システム開発|ITイノベーション/最先端技術|パブリックリレーションズ
【Docker】第5回 マウントについて(bind) - 札幌のAI・IoT・システム開発|ITイノベーション/最先端技術|パブリックリレーションズ

Temps

Dockerホストにファイルとして保存したくないデータを一時的に利用できるようにする(データ領域をメモリ上に置く)機能です。

引用:「Docker】第5回 マウントについて(bind)」

【Docker】第5回 マウントについて(bind)/札幌のAI・IoT・システム開発|ITイノベーション/最先端技術|パブリックリレーションズ
【Docker】第5回 マウントについて(bind) - 札幌のAI・IoT・システム開発|ITイノベーション/最先端技術|パブリックリレーションズ

Docker 簡単ハンズオン

ボリュームを作ってみる

ボリュームの理解を深めるためにボリュームをローカルで作ってみましょう。今回のハンズオンは以下のQiitaの記事を参考にさせていただきます。

Docker Volume (特に volumeタイプ) のわかりづらいところを説明してみる - Qiita
Dockerにはイメージやコンテナとは別にボリュームというデータを永続化する機構があります。 「ボリューム?ホストのファイルをコンテナ内で使えるようにするやつでしょう?」と思ったあなたは1/3だけ正しいです。 Dockerのボリュ...

まずはDcokerファイルを作りましょう。

このDockerfileを元にイメージを生成します。Dockerfileで定義したイメージを生成するには「build」コマンドを使います。またイメージに対して、環境構築のためのコマンドを実行したりする際には「run」コマンドを実行します。

今回はイメージの/myvol以下をmyvol-sample-volumeという名前をつけてボリュームとして保存します。ではこのボリュームが本当に生成されているかどうか以下の「volume」コマンドをつかって実行してみましょう。

myvol-sample-volumeというボリュームが生成されていることが確認できます。また今回 –rmをオプションでつけることでコンテナの処理が終了したあとに自動でコンテナを削除させています。では次はvolume内に保存されているgreetingをコンテナから出力させてみます。

Dockerfileでechoした内容が出力されることを確認できると思います。ではDockerfileを書き換えてみましょう。

新しく文字列を追加しました。この状態ですとイメージもボリュームも何も更新されていないのでまずは新しいDockerfileの元、新しいイメージを生成します。

では新しいイメージを元に新しいボリュームをsample-volume2という名で作りましょう。

先程と同様にボリュームが作られたかどうか確認します。

ちゃんとに生成されていることが確認できますね。では更新後のボリューム内容をcat /myvol/logic のコマンドを叩いて参照します。

追加したechoの出力が表示されているので成功です。といった感じで簡単なハンズオンはここで終わりです。少しボリュームがどんなものなのかを理解することができたのではないでしょうか?

エンジニアにイチ押しアイテム

目の疲労回復グッズ

ディスプレイをずっと見続けた時の目の疲労感ってすごいですよね。血行が悪くなっているというかズーンて重い感じがして、ひどい時は気持ち悪くなったりした経験をもつ人も多いのではないのかと思います。目って今後生きて行く上で非常に大切なものですし、ちゃんとにケアしていきたいものです。そこで私が日常的に使っている目のマッサージアイテムを紹介します。

アイマッサージャー 二年間保証 最新グラフェン加熱技術 目元マッサージャー

私は寝る前必ず使用しています。15分間目を40°で保温&マッサージしてくれて、本当に極楽の時間です。その後は快眠で、翌日の朝の目の疲労度が全くなくなりました。Amazonのレビューがこの商品の良さを物語っています。

筆者
筆者
303件レビューがついてて、評価が4.7と購入した方の殆どが「非常に満足」しているコスパ最強!超オススメのアイテムです!

コスパ最強20㎏×2ダンベル

実は筋トレって記憶力を向上させる効果があるんです。米国のジョージア工科大学が筋トレを20分間行なうと、記憶力が10%ほど向上するこという研究結果を最近発表したほどです。私はここのところ、老化からか体型が崩れてきたのに危機感を覚え購入。実際に筋トレしてみると筋トレ後のすっきり感がやばい。勉強の集中力も確かに上がるような気がしました。また、腕立てとかじゃ鍛えにくい肩なんかもパンパンになるので、男らしい体型を手に入れたいなと少しでも思っている人は買うべきアイテムだと思います。中でも以下のダンベルはAmazon内での評価が非常に高いので迷ったらこれを買いましょう。

ダンベル 【最新進化版・3in1】Wolfyok 純鋼製アレー アレイ 20kgセット(10kgx2) 30kgセット(15kgx2)
筆者
筆者
マシンを使って筋トレすると自重の筋トレ系、腕立て・腹筋・背筋が だいぶ楽になるので習慣化しました!また積極的にランニングしたり食生活を気に掛けるようになるので購入することをお勧めします! (体験談)

座椅子DIYで疲労防止

長い間椅子に座って作業することはエンジニア、理系学生にとってはつきものだと思います。ですが、この椅子の性能によって作業後の疲労感が全く異なるということを意識したことがありますか?私は以下の2つのアイテムを使って座椅子をゲーミングチェア並みにアップデートしました。おかげで姿勢が安定し、作業後の疲労感も減りました。また何より集中して作業に打ち込めるようになりました。

IKSTAR クッション 低反発 座布団 第五世代 オフィス IKSTAR クッション 低反発【メーカー直営・1年保証付】 ランバーサポート
筆者
筆者
座椅子にホールド感が出て、座り心地が格段に向上します。長時間座っていても疲れにくくなるので引きこもりにならないように注意しましょう!作業に夢中で1日中座りっぱなしだった経験があるので...

コードの可読性を高める

自分が大型ベンチャーの内定インターンに初めて参加した時、周りの超優秀なエンジニアの方々のコードをみて自分のコードの汚さに絶望しました。その時自分のマネージャーに勧められた本がリーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニックという超有名な一冊です。美しいコードを書くためのエッセンスが凝縮されています。エンジニアを職種として選ぶ方は読まない理由がない一冊です。自分もこの本を読んで、かなりコーディングスキルが向上したと感じています。

ネットワークの基礎を押さえる本

ITの基礎がおぼつかなくて、ネットワークの話についていけなかった時、早稲田大学のエンジニアの友人が勧めてくれたのがネットワークはなぜつながるのか 第2版 という本です。ハードウエアから、理論までネットワークの基礎が非常にわかりやすく解説されています。「TCP」「IP」「リゾルバ」という用語を説明できないエンジニアは間違いなく買ったほうがいいです。自分は知らなくてバカにされたので。笑

タイトルとURLをコピーしました