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入門

Last updated at Posted at 2025-03-22

Dockerとは

コンテナ型の仮想化技術を提供するプラットフォーム

コンテナ型仮想化とは

ホストOSのカーネルを共有しつつ、各アプリケーションをコンテナとして独立した環境で実行する仮想化技術

ハイパーバイザー型仮想化との違い

コンテナ型仮想化は、ホストOSのカーネルを共有してコンテナを実行するため、軽量で起動が速く、リソース消費が少ないです。
一方、ハイパーバイザー型仮想化は、各仮想マシン(VM)が独立したOSを持つため、異なるOSを並行して動かせるが、リソース消費が大きく起動が遅いです。

メリット

  • 軽量で高速
  • 環境の再現性が高い
  • スケーラブルで柔軟なデプロイ
  • 開発・運用の効率化(CI/CDとの相性◎)

デメリット

  • 異なるOSを同一基盤上で動かせない

Docker Engineとは

Dockerのコンテナ管理を行うソフトウェアの総称

Dockerの主要要素

Dockerデーモン

dockerd(Dockerのバックグラウンドプロセス)をリッスンし、イメージ、コンテナ、ボリュームなどのDockerオブジェクトを管理します

Dockerクライアント

ユーザーがDockerを操作するためのインターフェースで、通常 コマンドライン(CLI)から利用します

Dockerレジストリ

Dockerイメージを格納ためのリポジトリサービス

Dockerイメージを保存しているDockerオブジェクトがあるのにDockerレジストリがある理由

Dockerオブジェクトの保存場所がローカルマシンなのに対して、Dockerレジストリの保存場所はリモートサーバーだからです。よって、Dockerオブジェクトはローカル開発、テスト用には向いていますが、Dockerレジストリは本番環境、チーム開発、CI/CDに向いています

Dockerオブジェクト

Dockerが管理するリソースの総称で、主に以下が含まれます

Dockerイメージ

アプリケーションと環境をひとまとめにしたテンプレート

Dockerコンテナ

イメージを実行したもので、アプリが動作する単位

Dockerfile

Dockerイメージを作成するための設計図

Dockerボリューム

データを永続化するためのストレージ

  • bindマウント
    • ホストのフォルダをコンテナに直接マウント(リアルタイム同期)
  • volume
    • Docker管理のストレージ(複数コンテナ間で共有可能・高速)
  • tmpfsマウント
    • メモリ上に保存(コンテナ停止時にデータ消失・高速・セキュア)

Dockerのネットワーク

コンテナ間の通信を管理する仕組み

none

外部と接続しません

host(本番環境向け)

ホストのIPアドレスをそのまま使用します

Bridge(デフォルト、開発環境向け)

同じbridgeネットワーク内のみでコンテナ同士は通信可能で、外部との通信はNATを経由します

まとめ

Dockerは、コンテナ型の仮想化技術を提供するプラットフォームで、軽量かつ高速な環境構築を可能にします。Dockerは、イメージ・コンテナ・ボリューム・ネットワークなどのオブジェクトを管理し、開発や運用の効率化に貢献します。

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?