サラっと読むDocker入門:コンテナの基本とその利点
こんにちは、コグラフ株式会社データアナリティクス事業部の木村です。
今回は業務で使用しているメンバーもいるDockerについて書きました。
使ったことないけどDocker気になるという方の参考になれば幸いです。
Dockerとは
Docker社が開発したオープンソースのソフトウェアです。
コンテナ仮想化プラットフォームであり、アプリケーションをコンテナと呼ばれる独立した環境で実行するためのツールです。
少し難しいので、先にこのソフトウェアを使うと何が出来るか見ましょう。
プロセスはこんな感じです。
コンピュータ上にコンテナと呼ばれる箱を作る
その箱にOSや他のソフトを入れる
今使っているコンピュータが違うコンピュータのように使える
仮想化とは
「今使っているコンピュータが違うコンピュータのように使える」と書きましたが、これは仮想化という技術が使用されています。
従来の仮想化技術では、それぞれのOSを立ち上げ、それぞれのAppを動かしています。(下のイメージ右)
コンテナの仮想化技術では、OSを仮想マシンごとには立ち上げません。
ホストシステムのカーネルを共有するため、各コンテナが自身のOSを持ちません。(下のイメージ左)
よってDockerのコンテナは、非常に軽量で高速だと言われます。
イメージはこちら。
*カーネル:OSの基本機能の役割を担うソフトウェア
Dockerが出来ること
Dockerにより「今使っているコンピュータを違うコンピュータのように使う」ことが簡単に出来ることが分かりました。
そんな環境を作って、具体的に何をするか例を挙げます。
一貫したアプリの開発環境を構築する
Dockerを使うと、アプリケーションの開発環境を簡単かつ一貫した方法で構築することができます。
通常アプリケーションの開発する際、特定の言語やフレームワーク、ライブラリ、データベースなどが利用されます。
そしてそこには互いに依存関係があります。
これらの依存関係を手動でインストールし、設定するのは面倒で時間がかかります。
Dockerを使うと
Dockerイメージと呼ばれるコンテナを作るためのもととなるものを使用して、開発環境を構築します。
このDockerイメージにアプリケーションの実行に必要なすべてのコンポーネント(言語、ライブラリ、フレームワーク、ツールなど)が含まれており、コンテナとしてパッケージ化します。
これにより開発環境と本番環境の間での一貫性を確保した開発環境を構築することが出来ます。
参考URL
Twitterもやってます!
コグラフデータ事業部ではTwitterでも情報を発信しています。
データ分析に興味がある、データアナリストになりたい人など、ぜひフォローお願いします!