💻

Docker(メリット・使用手順)

に公開

Dockerを使い始めるための基本的な手順。


そもそも何が嬉しいのか?

1. 環境構築が圧倒的に簡単になる

  • Dockerfile や docker-compose を使えば、数行の設定だけで環境構築完了。
  • 開発環境・本番環境で「動く・動かない」の差異が激減。
  • 他の人が同じ環境を数秒で再現可能。

例:

pythonのバージョン違いで動かない…
→ Dockerなら FROM python:3.10 でバージョン固定できる

2. アプリケーションを「パッケージ化」できる

  • アプリ+ライブラリ+設定ファイルをまとめて「コンテナ」として管理。
  • 再現性が高く、再利用が簡単。

3. どこでも同じように動く(移植性)

  • Mac、Windows、Linux のどこでも、同じコンテナが動く。
  • クラウド(AWS, GCP, Azure)でも同様に動かせる。

4. 不要になったらすぐ捨てられる(使い捨て環境)

  • docker run → 実験 → docker rm でクリーンな環境がすぐ作れる。
  • 環境を壊してもすぐやり直せる。

5. チーム開発がスムーズになる

  • 「環境差異が原因のバグ」が激減。
  • 誰かが作った Dockerfile を共有するだけで、全員が同じ環境で開発可能

6. 本番運用・CI/CDにも強い

  • DevOps、CI/CD(継続的インテグレーション)の自動化で多用されている。
  • Kubernetes(K8s)との連携で本格的なスケール運用も可能。

7. 複数バージョンや構成の検証が容易

  • 例: 「Python 3.8 と 3.10 で挙動が違う」→ Dockerで両方の環境を即構築。

要約:Dockerのメリットまとめ

項目 説明
環境構築の簡略化 数行で完了、他人と共有も簡単
再現性・移植性 どこでも同じように動く
パッケージ化 アプリ+環境をまとめられる
クリーンな実験環境 すぐに作って壊せる
チーム開発に最適 環境のばらつきが減る
CI/CDや本番対応 DevOpsに強い、Kubernetes対応

用語

  • コンテナ:アプリケーションを実行するための独立した環境を作る技術。アプリが正しく動作するために必要な全てを含んでいる「イメージバックアップ」に近い存在。

自分の認識

MacOS, Windows, Linuxなど異なるOSの共通言語のようなイメージ。

Dockerの「本来の動作環境」がLinuxなので、現在は裏側で自動的にLinux仮想マシンを使っているらしい。(なんで解説でLinuxが仮想環境として挟まるのか気になった。)

解説

チャーハンで例えた解説をしてはった。

手順

✅ Step 1: Docker をインストールする

■ Macの場合

  1. 公式サイトにアクセス
  2. 「Docker Desktop for Mac」をダウンロード
  3. .dmg ファイルを開いてインストール
  4. 初回起動後、Apple ID認証や設定許可を求められる場合あり

■ Windowsの場合

  1. 同じく公式サイトで「Docker Desktop for Windows」をダウンロード
  2. .exe を実行してインストール
  3. WSL 2 が必要(自動で案内あり)

■ Linuxの場合(Ubuntu 例)

sudo apt update
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker

補足: sudo usermod -aG docker $USER を実行すると、再ログイン後 sudo なしで使えるようになります。


✅ Step 2: Docker が動くか確認する

docker --version
docker run hello-world

Hello from Docker! が表示されれば成功です。


✅ Step 3: 基本コマンドを覚える

操作 コマンド例
イメージ取得 docker pull ubuntu
コンテナ起動 docker run -it ubuntu bash
起動中の確認 docker ps
全コンテナ確認 docker ps -a
停止 docker stop <container_id>
削除 docker rm <container_id>

✅ Step 4: Dockerfile を使って独自環境を作る

例: Dockerfile

FROM python:3.10
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "main.py"]

ビルドと実行:

docker build -t my-python-app .
docker run my-python-app

✅ Step 5: docker-compose(複数サービスの定義)

docker-compose.yml 例(Web+DB):

version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

実行:

docker-compose up

✨ 補足:おすすめ学習方法

  • 公式チュートリアル(英語だがわかりやすい)
    https://docs.docker.com/get-started/

  • 日本語記事や動画チュートリアル(Zenn, Qiita, YouTube)も豊富です。


🔍 実行環境の位置関係

[あなたのPC]
 └─ [Dockerエンジン]
     └─ [コンテナA: Python 3.10 + あなたのコード]
     └─ [コンテナB: Node.js + Webサーバー]
  • コードはクラウド上のサーバーではなく、自分のPC上で動いている。
  • ただし、コンテナという仮想環境の中なので、外から見ると独立した「小さなサーバー」で動いているように見える。
  • Dockerをインストールした時点では、何の言語も入っていない。

✅ よくある誤解

誤解 実際
Docker = クラウド上で動く ❌ 自分のPC上でも動く
Dockerを使うと必ずWi-Fiが必要 ❌ 初回だけ。以降はオフラインでも動く
Dockerの中でコードがクラウドに送られる ❌ 基本的にローカルPC内で完結

Discussion