【PHP日記】

自分の知識不足を悟った末、なるべく1日一回、Webに関する知識を書いていくだけのブログ。

Dockerの概要を把握する 【19日目】

ポートフォリオを作成する上で、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

https://www.kagoya.jp/howto/cloud/container/dockerformac/