Docker とは!?
作成中のポートフォリオにDockerを実装しています。いままでDockerというワードは良く耳にしていましたが、どのようなメリットがあるのか把握しておらず。実際に使ってみて少しずつ使うメリットが分かってきました!
Dockerとは
ざっくりというと、自分のPCの中にもう一つの小さなPC(仮想化環境)を構築してその中に、アプリのコードや、サーバー、データベースを入れて、アプリケーションを作っていく仕組みです。
そしてこのDockerが作り出す、小さなPC(仮想化環境)がとてもスピーディーかつ効率的なのです。
小さなPCの作り方は下図のように仮想マシンとコンテナ型がありますがDockerはコンテナ型になります。
仮想マシンとコンテナとの違いは下図にもあるようにOSです。仮想マシンではマシンの一つ一つにOSをインストールしてアプリを動かしますが、コンテナ型では自分のパソコンにあるOSを使用することでスピーディーにアプリを動かすことが出来るのです!!
導入するメリット
そしてコンテナ型で仮想化環境を構築することで沢山のメリットがありますが、私が感じたメリットを深堀します。
環境の差を無くす
アプリの開発では複数人の人が別々のPCで開発を行いますが、それぞれのPCで別々のバージョンのソフト等を使用しているとアプリがうまく動かせずにエラーが起きてしまいます。
そこでDockerのコンテナを共有することで環境の差を解消することが出来ます。
Dockerコンテナを作るにはDockerfileという仕様書を作るのですが、仕様書にアプリをつくる環境を明記します。そして仕様書に基づいてそれぞれのPCでコンテナをつくることから環境の差をなくしてスムーズにアプリを動かすことができるのです!
こんな便利なら初めから知っておけばよかった
私はローカル環境でポートフォリオを作って、Webサーバーにデプロイしたのですが、手順通り行っても、ぜーんぜんうまく行かず。WEBサーバーを構築するコマンド画面と何日も格闘していたのですが、その原因というものがインストールしているPHPのバージョンの違いでした。
Dockerfileに仕様を明記してローカルでも本番環境でも同様に行えばうまく行ったかと思います。
Dockerを使うメリットは少しずつ分かってきたので、引き続きポートフォリオに実装する(めちゃ苦戦中)まで書いていきたいと思います~ぞいっ!
コメントを残す