Dockerコンテナの仕組みと実践入門|Linuxのcgroups・namespaceからDockerfileまで

現場実践|Dockerコンテナ基礎
Dockerコンテナの仕組みと実践入門|Linuxのcgroups・namespaceからDockerfileまで
「Dockerって何?仮想マシンと何が違うの?」——Linuxのcgroups・namespaceによるコンテナの仕組みから、Dockerfile・docker-composeの実践的な使い方まで解説します。
💡 DockerはLinuxの「cgroups(リソース制限)」と「namespace(分離)」を使ったコンテナ技術。仮想マシンよりも軽量・高速で、「一度作ればどこでも動く」ポータビリティが最大の強みです。
1. コンテナとVMの違い
| 仮想マシン(VM) | コンテナ(Docker) | |
|---|---|---|
| 起動時間 | 数分 | 数秒 |
| サイズ | GBクラス(OSを含む) | MBクラス(OSカーネルを共有) |
| ポータビリティ | ハイパーバイザー依存 | DockerさえあればどこでもOK |
| プロセスの分離 | 完全分離 | Linuxのnamespaceで分離(カーネルは共有) |
2. 基本的なDockerコマンド
# イメージを取得して起動
docker pull nginx
docker run -d -p 8080:80 --name mynginx nginx
# コンテナの確認・停止・削除
docker ps
docker stop mynginx
docker rm mynginx
# コンテナ内でコマンドを実行
docker exec -it mynginx bash
# ログを確認
docker logs mynginx -f3. Dockerfileの書き方
# Node.jsアプリのDockerfile例
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]ベースイメージは軽量な「alpine」を選ぶことでイメージサイズを小さくできます。RUNは1行にまとめることでレイヤー数を減らしイメージを軽量化できます。
4. docker-composeで複数コンテナを管理
version: "3.8"
services:
web:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: password
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata:📌 この記事のポイント
- コンテナはLinuxのcgroups(リソース制限)とnamespace(分離)を使ってVMより軽量・高速を実現する
- docker run・ps・exec・logsの4コマンドが日常的に最もよく使うDockerコマンド
- Dockerfileはalpineベースイメージ+RUNの最小化でイメージを軽量化する
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
資格取得後のキャリアに、AI活用という選択肢を
資格取得の先に現場でのIT効率化を任される場面が増えます。職場のルーティン業務にAIをどう組み込めるか、無料のセルフ診断(3問・約1分)でヒントが得られます。
この記事を読んでいる方へのおすすめ:
【編集・制作ポリシー】
本記事はRoute Bloom編集部が公式ドキュメント・技術仕様書の一次情報をもとに作成しています。ITインフラ・技術情報は急速に変化するため、実装前に最新の公式ドキュメントをご確認ください。情報の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。
本記事はRoute Bloom編集部が公式ドキュメント・技術仕様書の一次情報をもとに作成しています。ITインフラ・技術情報は急速に変化するため、実装前に最新の公式ドキュメントをご確認ください。情報の正確性には万全を期していますが、最新情報は各公式サイトをご確認ください。
【編集・制作ポリシー】
本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
この記事で学んだスキルをさらに深めたい方へ
コンテナ技術をハンズオンで学べる技術書です。Kubernetes・Dockerをさらに深く理解しましょう。
Amazonアソシエイトプログラムを利用しています。
ABOUT ME




