Dockerとは?

Dockerとは?

先日、業務でDockerを使う機会があったのですが、Dockerについてあまり知らなかったので、調べました。とても簡単に導入できて便利なので、ぜひ使ってみてください。

Dockerとは何か?

Docker(ドッカー)とは、アプリケーションを“コンテナ”という単位で動かす技術です。
簡単に言うと、「どこでも同じ環境で動かせるようにするツール」

たとえば、「開発では動いたのに本番環境では動かない…」そんなあるあるトラブルを解決してくれます。

何が便利なの?

1. 環境構築が一瞬でできる

「PHPのバージョンが違う」「ライブラリが入ってない」そんな悩みとはサヨナラ。
docker-compose up の一発で、必要なサーバー・DB・ミドルウェアを一気に起動できます。

2. ローカルと本番が同じになる

本番とローカルで同じDocker環境を用意すれば、「ローカルでは動くのに本番で落ちる」が起きにくくなります。

3. 他人との共同開発がラク

プロジェクトに新しいメンバーが入っても、Docker環境を渡せばすぐに同じ状態で開発可能。

4. OSに依存しない

Windows、Mac、Linuxなど、OSが違っても同じようにアプリケーションを動かせます。

注意点・デメリット

1. 初期学習コストがある

「イメージ」「コンテナ」「ボリューム」「ネットワーク」など、最初は用語が多くて戸惑います。
ただ、慣れれば環境構築が超ラクになるので、覚えて損なし。

2. GUI操作に弱い

WebアプリやCLIツールは得意だけど、「Photoshop」「Office」などのGUIアプリには不向き。

3. ホストマシンの性能に依存

コンテナをたくさん立ち上げると、PCが重くなることがあります(特にメモリが少ない場合)。

Dockerの導入方法(Mac版・Windows版)

Docker Desktopというアプリをあらかじめインストールしておき、ターミナルから実行して使います。

Docker Desktopは無料?
→ 個人利用・中小企業(従業員250人以下、売上1,000万ドル未満)であれば無料です。MacもWindowsもインストール後にDocker Hubのアカウント作成を求められることがあります。(無料)

Macの場合(Apple Siliconも対応)

  1. 公式サイトから「Docker Desktop for Mac」をダウンロード
  2. Download for Mac」をクリックしてインストーラーをダウンロード
  3. ダウンロードした .dmg ファイルを開き、指示に従ってインストール
  4. インストール後に「Docker Desktop」を起動
  5. ターミナルを開いて、docker --version が表示されればOK!

Windowsの場合(Windows 10/11 Pro または WSL2 対応 Home)

  1. 公式サイトにアクセス
  2. Download for Windows」をクリックしてインストーラーをダウンロード
  3. ダウンロードした .exe ファイルを実行し、指示に従ってインストール
  4. WSL2(Windows Subsystem for Linux)を有効にする必要があるため、インストーラーの指示に従ってWSL2を有効化
    ※ Homeエディションの場合はWSL2必須です
  5. インストール後に「Docker Desktop」を起動
  6. コマンドプロンプト or PowerShell で docker --version を実行し、バージョン情報が出れば成功!

バージョン確認

ちゃんとインストールされたか確認します。

docker --version

→ 結果例:Docker version 24.0.6, build ed223bc

Dockerの基本用語

イメージ(Image)

  • アプリケーションを動かすための「設計図」や「テンプレート」
  • OSやソフト、設定ファイルなどが含まれる
  • 例:php:8.1mysql:5.7 など

docker run でコンテナを作る元になるもの」

コンテナ(Container)

  • イメージから作られた「実行中のアプリ環境」
  • 必要なアプリが動作している状態
  • 複数同時に起動できる(独立して動く)

「イメージを実際に起動した状態」

ボリューム(Volume)

  • コンテナの外にある「データ保存場所」
  • コンテナを削除しても、データは残る
  • 主にデータベースのデータや、ログなどを保存するのに使う

「データを永続化したいときに使う」

ネットワーク(Network)

  • コンテナ同士をつなぐ「通信の仕組み」
  • WebアプリとDBコンテナをつなぐときに必要
  • Dockerは仮想ネットワークを自動で用意してくれるが、カスタム定義も可能

「複数のコンテナを連携させるための通路」

用語ざっくり例えると説明
イメージレシピソフト・OS構成をまとめたテンプレート
コンテナ出来上がった料理イメージから作られた実行中の環境
ボリューム倉庫・冷蔵庫コンテナの外に保存する永続データ
ネットワーク廊下・LANケーブルコンテナ同士やホストと通信するための経路

まとめ

項目内容
Dockerとは?どこでも同じ環境でアプリを動かせる技術
メリット環境構築がラク、再現性が高い、チーム開発に強い
デメリット初期学習が必要、GUIに弱い、PCの性能に依存
導入方法Docker Desktopを入れればOK(Mac/Winどちらも公式あり)

Dockerはチーム全員で同じ開発環境を作りたい時にとても便利です!ぜひ使ってみてください!

まい

Webサービス制作会社で、Wordpressのテーマ開発や2Dシミュレーターの開発、JavaScriptを使用したフロントエンド周りの実装を担当しています。 JavaScriptが好きです。 最近は、3D Model Configuratorの制作にチャレンジしています。

その他カテゴリの最新記事