2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerがまじでわからない人のためのDocker入門① — まず「何をしている技術なのか」を理解する

2
Last updated at Posted at 2026-08-17

Dockerを触り始めたとき、最初に困るのはコマンドそのものよりも「結局こいつは何をしているの?」という部分かと思う。

ここからは Docker 解説シリーズとして、全20回で Docker の基礎、k8s(Kubernetes)、CI/CD パイプライン、Terraform による IaC までを解説していく。
開発環境を整えるところから、Kubernetes によるスケール可能な運用、CI/CD による自動デプロイ、Terraform によるインフラ管理まで、実務でよく出会う流れを一本で追える構成にしている。

この記事では、DockerfileやComposeの細かい書き方に入る前に、Dockerが何を解決するための技術なのかを整理することとする。

Dockerを一言でいうと

Dockerはざっくり言えば、「アプリが動く環境をまとめて持ち運びやすくする仕組み」である。

たとえば自分のPCでは、PythonのAPIを開発しているとき、自分の環境では以下のようなものが動いている。

  • OS
  • Python
  • PostgreSQL
  • ライブラリ群
  • 環境変数
  • 開発中のPythonアプリ

これを別のPCで動かそうとすると、Pythonが入っていない、バージョンが違う、必要なライブラリがない、といった問題が起きる。
WindowsとMacではまた大きく環境が違うし、チームメンバー間で環境が違う!といったことは珍しくないだろう。

Dockerでは、アプリの実行に必要な環境を「コンテナ」としてまとめ、どの環境でも一様に扱えるようにする。

これによって「自分のPCでは動くのに、別環境では動かない」という問題を減らせる。

Dockerfile → Image → Container

Dockerを理解するときに最初に覚えたいのが、以下の流れである。

Dockerfileとdocker-compose.yaml, この2ファイルがDockerを扱うときによく見るものであるが、
まずはこのDockerfileについて理解を深めるのがよかろう。
ここでのキーワードは「Dockerイメージ」と「Dockerコンテナ」である。

Dockerfileは設計図

たとえばPythonなら、次のようなDockerfileがある。

FROM python:3.13-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

これはざっくりと

Python 3.13 の環境を使い、コンテナ内の作業ディレクトリを /app にする。
requirements.txt をコピーして依存ライブラリを入れ、ソースコードをコピーする。
コンテナ起動時に app.py を実行する。

という手順を書いている。

Imageは実行環境のテンプレート

docker build -t my-python-app .

Dockerfileをビルドすると「Docker Image」ができる。Imageはまだ実行されていない。

Containerは実際に動いているもの

docker run my-python-app

Imageから実際に起動されたものが「Docker Container」である。同じImageから複数のContainerを起動することもできる。

Docker Composeとは

実際のWebシステムでは、フロントエンド、API、DBなど複数のContainerが必要になることがある。

これらを個別に起動するのは面倒だ。
DBは自分でbuildするではなく、配布されている既存のImageを用いるのが通常だ。
それでも、web / api / db を個別に起動するとなると毎回このようなコマンドを打つこととなる。

docker build -t my-web-app ./web
docker build -t my-api ./api

docker run --name db -d -e POSTGRES_PASSWORD=pass postgres:17
docker run --name api -d my-api
docker run --name web -d my-web-app

しかも、コンテナ同士をつなぐネットワーク設定や起動順も自分で考える必要がある。

毎回こんなの打ってられないだろう。
複数のContainer構成をまとめて扱うのが「Docker Compose」だ。

services:
  web:
    build: ./web
  api:
    build: ./api
  db:
    image: postgres:17

そして、

docker compose up --build

とすれば、Composeに定義した環境をまとめて起動できる。

まとめ

最初は次の対応だけ覚えておけば十分だ。

用語 意味
Dockerfile Imageを作るための設計図
Image Containerの元になるテンプレート
Container 実際に起動している実体
Docker Compose 複数のContainer構成をまとめて管理する仕組み

次の記事では、実務でよく見る docker compose up --build --watch を1語ずつ分解することとしよう。

次章

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?