ポートフォリオを作成する上で、Dockerを使った開発に慣れておいた方がいいと思ったのです、ざっくりまとめてみました。
Dockerとは
手元のPCとウェブサーバー上で環境が異なっている場合、作成したプログラムをそのままウェブサーバーに持っていっても動きません。
また、複数人での開発を行う際にソースコードの共有はできても、そもそものOSや実行環境が異なっているせいで、作成したプログラムが正常に動かないということが多々あります。
そこで、これらの環境をうまく合わせる(実行環境自体を共有する)ために用いられるのが「Docker」です。 Dockerはコンテナ型の仮想マシンなので、PC上にもう一つの仮想マシンを作成し、この中に好きな構成で環境を構築することができます。
また、コンテナ型になっているということは、WebサーバーにもDockerをインストールすることで、手元のPC上で作成したコンテナをそのままウェブサーバーへ移動させる(持ってくる)ことができます。
このようにDockerを使うことで、環境の違いを意識することなく、開発を進めていくことができます。
作業の概要
DockerをインストールしたOSが用意できたら、そこにコンテナの設定ファイルやアプリケーションがまとめられた「Dockerイメージ」を用意します。
イメージを用意するには、Dockerを運営しているDocker hubから引っ張ってくるのが一般的ですが、「Docker file」という.txtファイルをを用いることで、設定した項目内容でDockerイメージをビルドすることもできます。
イメージが用意できたらそれを実行していきます。実行すると、環境を構築するための箱である「Dockerコンテナー」ができるので、その中でさまざまな設定を行ったり、アプリケーションのテストを行ったり、自分好みの中身を作っていきます。
また基本的に、コンテナはアプリケーションの実行環境を提供するものであり、開発作業自体はコンテナの外、つまり"開発者のローカル環境"で行われるため、コンテナを使って開発環境を構築し、アプリケーションの実行やテストをコンテナ内で行うのが一般的です。
コンテナーが用意できたら、その状態からまたイメージを作ることもできます。作成したイメージは「Docker hub」などで共有され、その他のOS上でそのイメージを取得し、同じ環境を構築していくことになります。
開発の流れ
Dockerを使った開発の流れは以下のようになります。
① アプリケーションの開発
開発者はローカル環境において、エディタやIDE(統合開発環境)を使用してアプリケーションの開発を行います。
② イメージの作成
「Docker hub」や「Dockerfile」を利用してイメージを用意します。これによりアプリケーションを実行するための環境がセットアップされます。
③ コンテナの起動
用意したイメージを元にコンテナを起動します。ローカル環境で作成したソースコードをマウントする(コンテナの外にあるデータをコンテナの中で利用できる状態にする)ことで、ローカル環境の変更がコンテナ内にも反映されます。
④ 開発とテスト
ローカル環境でコードを編集して保存すると、コンテナ内でアプリケーションが更新されます。開発者はコンテナ内でアプリケーションを実行し、変更をテストします。
⑤ イメージの更新と共有
必要に応じて新しいイメージをビルドします、これを共有することで他の開発者や環境でも同じイメージを使用できます。
以上です。
参考文献
https://dotinstall.com/lessons/basic_docker/27701
https://qiita.com/etaroid/items/b1024c7d200a75b992fc
https://dotinstall.com/lessons/basic_dockerdesktop_mac_v2/57501