MinEMemO

【Docker】#1 はじめに+Dockerとは+Docker Desktopインストール

📝 更新日:2022-10-19 / 📄 作成日:2022-10-11
Hero Image
目次

はじめに

今回業務で開発環境を作る際に共有できるノウハウが存在しないチームだったので、展開できる方法を検討し、Dockerが最適だと判断し個人で勉強しチームに展開まで行いました。

この通りやれば環境を再現してローカルで使える!というところまで、まとめたので時間がある限りブログに残そうかと思っています。

作成する環境は以下の通りです。

  • windows pc
  • php 8.0.23
  • composer 2.4.1
  • nginx 1.22.0
  • MySQL 8.0.30
  • Laravel 6.20.44
  • phpMyAdmin最新

参考にした教材は以下です。
こちらがなかったらここまで実現できなかったと思います。

ありがとうございます。

なお、私自身はインフラ専門家ではないので、インフラの各種機能の設定値は深堀していません。
本気で事業で使う場合はインフラの専門家の方にDockerファイルを作成+本番環境での運用を想定してもらい、それを作業者は起動、運用するだけ、という風にするのが理想だと思います。

Dockerとは

環境構築を設定ファイルとコマンドで行えるツールです。
設定ファイルとコマンドで成り立つため、個人個人で環境の統一がしやすいのがメリットです。

Dockerの設定ファイルになれればバージョンの変更も容易なので、最初の敷居は高めですが、なれるとDocker一択!というほどお手軽で便利でチームで使いやすいものだと感じました。

手順を体系的に書いてわたすのがすごく楽になります。

環境構築に必要なもの

Docker今回のメインツール
プロジェクトフォルダローカルPCの作業フォルダ。 この構造に沿って、docker-compose.ymlで共有フォルダのパスなどを設定し環境を動かす基盤にする
phpやdbなどの設定ファイル使う機能の設定ファイルは自分で用意する必要があります
DockerfileDockerイメージをビルドする設定ファイル
docker-compose.ymlイメージからコンテナを一括で起動、管理するファイル

Docker Desktopインストール

最初はDockerを使うためのアプリをインストールしましょう。
このアプリを起動してDockerで仮想環境を起動します。

1.Dockerの公式サイトにアクセス

https://www.docker.com/get-started/

2. Download for Windowsをクリック

※ちょっと下のSee Docker Desktop for Windowsも同じです

3.Docker Desktop Installer.exeを実行しインストール

※結構時間かかりますが、いわれるがまま実行で大丈夫です。

DockerDesktop(Docker for Windows)とVirtualBoxについて

VirtualBoxとDockerDesktopは共存できないみたいです。

もしこの問題がある場合は、現在非推奨のDocker tool boxであれば一応Dockerを使うことができます。

Docker tool boxはつかったことないので、今回は割愛します。

4.dockerHubアカウント作成

https://hub.docker.com/

※アカウント作成しないとdocker hub からイメージという主要ファイルをDL(pull)できなかったりするケースがあるそうです。

さいごに

これでDockerのインストールや登録などの事前準備は完了です。
今後の流れとしては、大きく以下のようになります。

  1. Docker Desktopインストール
  2. ローカルに作業フォルダを作成
  3. Dockerの設定ファイルを作成
  4. Laravelをコマンドでインストール
  5. dockerでコンテナ(機能)を起動+Laravel表示確認
  6. LaravelのDB設定、確認
  7. phpMyAdmin表示確認
  8. 出来てる環境の確認
今回はここでおわりです。
Dockerはコンテナ?イメージ?Dockerfile?docker-compose.yml?などの役割が頭に入ってくると理解しやすくなりますが、 そこも慣れなので、焦らずにやっていきましょう。
profile_icon
taka
プログラマー
いつでも転職希望の業務経験7年目(2023時点)のエンジニアです。 仕事の合間にすこしずつ転職活動はしていますが、条件が合う場合ぜひTwitterなどでご連絡頂けると嬉しいです。 希望条件は基本的に残業は1日x1h程度。収入は一旦現状維持。 ある程度で構わないので、保守運用が管理されていて、精神的に安心して働ける環境が良いです。 経験言語はHTML、CSS、javascript、PHP、MySQL、Docker、Vuejs、Laravel このブログは完全に自作で静的ジェネレータで作りました。 この範囲で言えば React.js Gatsby.js GraphQLも経験があります。 最近はAIがどう社会に受け入れられ、日常になっていくのかの行く末が気になっています。 今までの人生で一番変化を感じて不思議な感覚です。