💻
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の場合
- 公式サイトにアクセス
- 「Docker Desktop for Mac」をダウンロード
-
.dmg
ファイルを開いてインストール - 初回起動後、Apple ID認証や設定許可を求められる場合あり
■ Windowsの場合
- 同じく公式サイトで「Docker Desktop for Windows」をダウンロード
-
.exe
を実行してインストール - 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