自分自身の学習記録を残し、見直した際に素早く思い出すための記事投稿です。
記入日:2020年11月15日
それでは書いていきましょう。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1.Dockerとは何か?
PC上でSwitchやLinuxを動かせるエミュレータのようなもの。
PCの中に別のマシンを作成・起動させるための仮想環境を作成するためのプラットフォームです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
2.そもそもDockerを入れる理由は?
①エンジニアによって異なる開発環境を統一させ、開発効率をよくするため
=OSによる環境の違いや、使用しているマシンなどによる挙動を気にしくてよくなる
②開発環境と本番環境での違いをできるだけなくせる
=本番環境へのデプロイがしやすい(環境差分が完全になくなるわけでない?)
=サーバーへの環境設定なども不要になるので、リリースの速度も早くなる
つまりDockerを使用すると、チーム開発をする上での開発環境を統一させ、
本番環境へデプロイする上でのエラー等を最大限小さくすることができます!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
3.Dockerの仕組みとは?
Dockerはイメージとコンテナが基本。イメージからコンテナを生成する。
【イメージとは】
コンテナの元となるテンプレート。
OSや実行するアプリケーションや様々な設定をまとめたもの(テンプレート)。
【コンテナ】
上記のイメージを元に作成される。
OSとアプリケーションが動く実行環境。
本番環境にコンテナをデプロイすることで、アプリケーションを本番環境上で動作させられる。
基本的には以上の2つから成り立っているのがDockerの基本です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
4.具体的な操作手順は?
①イメージを取得/ビルドする
❶オンライン上のDockerHubにある、Dockerレジストリからイメージを取得する。
❷自分自身で作成する ※ベースのイメージはレジストリから取得し、それらに設定を加えたものビルドする
ビルド=ベースとなるイメージに、自分自身の加工を加えたもの
通常の開発では、自分自身でDockerfileを作ることの方が多い。
②コンテナを生成・起動する
作成したイメージからコンテナを生成する → そしてそれを起動する → アプリケーションが動作する
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
以上が基本的な流れです。
ですが、アプリケーションの開発においては、大抵は複数のコンテナを扱い作業が行われるため、
1つ1つをイメージビルド、コンテナ作成等をすると手間です。
それでは複数のコンテナを動作させる場合はどうするか?
結論 「Docker Compose」 を使用する
Docker Composeは複数のコンテナを定義し実行するためのツールです。
ymlファイルというものに設定を記載する事で、コマンドでコンテナの生成や起動などをする事ができます!
ここで、Docker Composeにおけるコマンドの基本操作を記載しておきます。
※コンテナライフサイクルと言います
ビルド $ docker-compose build
生成起動 $ docker-compose up
停止 $ docker-compose stop
削除 $ docker-compose rm
再起動 $ docker-compose restart
停止削除 $ docker-compose down
その他のコマンド
起動中のコンテナでコマンドを実行 $ docker-compose exec
コンテナの一覧を表示 $ docker-compose ps
ログの表示 $ docker-compose logs
使用していないコンテナやイメージなどを削除 $ docker-compose prune
他にも多くがありますが、その際はリファレンスを参考にしてください。
参考URL:https://docs.docker.com/reference/
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
5.Dockerをインストールする
公式HPのget-startedからダウンロードしましょう。
Desktop用の物をインストールしますが、
自身のOSのバージョンなどを事前に確認しておくと良いと思います。
ダウンロードが完了し、アプリケーションを実行するとデスクトップ右上に、
Dockerのクジラのアイコンが出てきます。(可愛い)
クリックしていただき、runningの状態になるとアプリケーションを操作する事ができるようになります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
6.Dockerでコンテナを起動させるには
公式ドキュメント:https://docs.docker.com/
公式ドキュメントないの「Quickstart」でPCにインストールできているかや
簡単な動作確認ができますので、参考にしつつ触りとして行うことをおすすめします。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
簡単ではありますが以上となります。
感想としてはモダンなWEB系企業では取り入れられており、
導入メリットを見れば「あぁなるほどな〜」と思いました。
WEB開発を進める上ではスピード感は大切ですし、
人を動かす分、お金がかかっていますので、
それらを迅速に活用するためにも、Dockerは合理的で
素晴らしいプラットフォームだと思いました。
学習を進める上で、追記事項があれば別記事にするか、
こちらに追記していくかで内容を濃くできるようにしていきたいと思います。
ご覧いただきありがとうございました。