PR

初心者向け|Dockerなぜ使う?基本概念、使い方やコマンド学ぶ

IT技術 Docker
広告

今日は、「Docker(ドッカー)」についてお話ししたいと思います。最近、開発環境を整えるためにDockerを使う方が増えてきましたが、まだまだ初心者の方も多いのではないでしょうか。

そこで、Dockerの基本的な使い方やコマンドについて、わかりやすく解説していきます。

Dockerとは?なぜ使うのか

Dockerは、コンテナー型仮想化技術を活用したプラットフォームであり、一貫した開発環境を構築するためのツールです。

伝統的な仮想化技術と異なり、DockerはホストOSのリソースを共有しつつ、独立したアプリケーション環境を提供します。

ドッカーはパソコンの中のパソコンだと思ってもよいでしょう。

パソコンの中に仮想環境を作って、その中にアプリやストレージを構築したのが、Dockerです。

コンテナ仮想化とは?

コンテナ仮想化とは、単一のホストOS上で複数の独立したアプリケーション実行環境(コンテナ)を動作させる技術です。これにより、開発者は「どの環境でも変わらない実行環境」を作り出すことができます。

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

従来の仮想化技術であるハイパーバイザ型仮想化(例:VirtualBoxやVMware)は、ホストOSの上にゲストOSをフルセットで起動させます。

一方、DockerはホストOSのリソースを直接利用し、アプリケーションとその依存関係を「コンテナ」で管理します。この違いにより、Dockerは以下のメリットを提供します。

  • パフォーマンス向上:ホストOSのリソースを直接利用するため、軽量かつ高速に動作
  • セットアップの容易さ:コンテナイメージを取得するだけで開発環境を準備可能
  • ポータビリティの向上:開発者の環境と本番環境の差異を最小限に抑えられる
広告

Dockerの基本概念

コンテナとイメージの違い

Dockerでは、アプリケーションを「イメージ」として保存し、そのイメージから「コンテナ」を作成して実行します。イメージはアプリケーションの実行に必要なファイルや設定を含んでおり、コンテナはそのイメージを実行した状態のことを指します。

Dockerのアーキテクチャ

Dockerは、クライアントとサーバーのアーキテクチャを持っています。クライアントはDockerコマンドを通じてDockerデーモンに指示を出し、デーモンは実際にコンテナを管理します。この仕組みにより、ユーザーは簡単にコンテナを操作することができます。

Dockerのインストール

Dockerを使うためには、まずインストールが必要です。

広告

Dockerのエコシステム

Dockerは単なる仮想環境を作るツールではなく、効率的に開発を進めるためのエコシステムを備えています。その主要な要素を紹介します。

Docker Hubとは?

Docker Hubは、Dockerイメージの管理・共有を行うプラットフォームです。開発者は、Docker Hubから必要なイメージを取得し、自身の環境で利用することができます。

Docker Compose

Docker Composeは、複数のコンテナを組み合わせて動作させるためのツールです。たとえば、アプリケーションサーバーとデータベースサーバーを連携させた開発環境を一括で構築することが可能です。

Kubernetes(K8s)

Kubernetesは、複数のコンテナを大規模に管理・運用するためのオープンソースプラットフォームです。Dockerと併せてKubernetesを導入するケースも増えています。

広告

Dockerの基本コマンド

よく使うDockerコマンドを用途別にまとめてみました。

Dockerのバージョンを確認

docker version

イメージ関連のコマンド

# イメージの一覧表示
docker images

# イメージのダウンロード
docker pull <イメージ名>:<タグ>

# イメージのビルド
docker build -t <イメージ名>:<タグ> .

# イメージの削除
docker rmi <イメージID or イメージ名>

# 未使用のイメージを一括削除
docker image prune

# イメージの詳細情報表示
docker image inspect <イメージID>

    コンテナ操作のコマンド

    # コンテナの起動
    docker run <オプション> <イメージ名>
    docker run -d -p 8080:80 nginx # バックグラウンドでnginxを起動

    # よく使用するrunのオプション
    -d # バックグラウンドで実行
    -p 80:80 # ポートフォワーディング(ホスト:コンテナ)
    -v # ボリュームのマウント
    --name # コンテナに名前を付ける
    --rm # 終了時にコンテナを自動削除
    -e # 環境変数の設定

    # 実行中のコンテナ一覧
    docker ps

    # すべてのコンテナ一覧(停止中含む)
    docker ps -a

    # コンテナの停止
    docker stop <コンテナID or コンテナ名>

    # コンテナの開始
    docker start <コンテナID or コンテナ名>

    # コンテナの再起動
    docker restart <コンテナID or コンテナ名>

    # コンテナの削除
    docker rm <コンテナID or コンテナ名>

    # 未使用のコンテナを一括削除
    docker container prune
    広告

    コンテナとのやり取り

    # 実行中のコンテナに入る
    docker exec -it <コンテナID> /bin/bash
    docker exec -it <コンテナID> /bin/sh # Alpine Linuxの場合

    # コンテナのログを表示
    docker logs <コンテナID>
    docker logs -f <コンテナID> # リアルタイムでログを追跡

    # コンテナ内のファイルをホストにコピー
    docker cp <コンテナID>:/コンテナ内のパス /ホストのパス

    # ホストのファイルをコンテナにコピー
    docker cp /ホストのパス <コンテナID>:/コンテナ内のパス

    ネットワーク関連

    # ネットワーク一覧の表示
    docker network ls

    # ネットワークの作成
    docker network create <ネットワーク名>

    # ネットワークの詳細情報
    docker network inspect <ネットワーク名>

    # ネットワークの削除
    docker network rm <ネットワーク名>

    ボリューム関連

    # ボリューム一覧の表示
    docker volume ls

    # ボリュームの作成
    docker volume create <ボリューム名>

    # ボリュームの詳細情報
    docker volume inspect <ボリューム名>

    # 未使用のボリュームを削除
    docker volume prune

    システム情報とクリーンアップ

    # Dockerシステムの情報表示
    docker info

    # ディスク使用量の確認
    docker system df

    # 未使用リソースの一括削除
    docker system prune # 未使用のコンテナ、ネットワーク、イメージ、キャッシュを削除
    docker system prune -a # 未使用のリソースをより強力に削除

    # Dockerのステータス確認
    docker stats
    広告

    Docker Compose関連

    # サービスの起動
    docker-compose up
    docker-compose up -d # バックグラウンドで起動

    # サービスの停止
    docker-compose down

    # サービスの再構築と起動
    docker-compose up --build

    # コンテナのステータス確認
    docker-compose ps

    # サービスのログ表示
    docker-compose logs

    # 特定のサービスでコマンドを実行
    docker-compose exec <サービス名> <コマンド>

    これらのコマンドは、必要に応じて組み合わせて使用することができます。

    また、各コマンドには他にも多くのオプションがありますので、docker <コマンド> –helpで詳細を確認することができます。

    広告

    コンテナー作成の簡単な例

    簡単な例としてDockerの hello-world コンテナを作成してみましょう。

    Dockerのインストール確認

    Docker Desktopのインストールが完了したら、ターミナルまたはコマンドプロンプトを開き、以下のコマンドを実行してDockerが正しくインストールされていることを確認します。

    docker --version

    Docker Desktopの起動確認

    まず、WindowsのタスクバーにDockerのアイコンが表示されているか確認し、表示されていない場合は Docker Desktop を起動します。

    hello-world イメージの取得

    次に、Docker Hub から hello-world イメージを取得します。以下のコマンドを実行します。

    docker pull hello-world
    広告

    hello-world コンテナの実行

    イメージが取得できたら、以下のコマンドを実行して hello-world コンテナを起動します。

    docker run hello-world

    実行結果の確認

    コンテナが正常に実行されると、以下のようなメッセージが表示されます。

    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    ...

    これで、Dockerの hello-world コンテナを作成して実行する手順は完了です。

    広告

    Dockerを使った開発のメリット

    Dockerを導入することで、開発環境やデプロイの管理が大幅に効率化されます。特に次のような点で開発プロセスが改善されます。

    環境の差異がなくなる

    開発環境・テスト環境・本番環境で異なる設定が存在すると、動作が不安定になる原因となります。Dockerを用いれば、どの環境でも同じ条件で動作するため、この問題を解決できます。

    インフラの自動化が可能

    Dockerfile を利用することで、環境構築の手順を一括で管理できます。

    広告

    まとめ

    Dockerは、アプリケーション開発、デプロイ、運用を劇的に効率化するテクノロジーであり、今後の開発シーンにおいては欠かせないツールだといえます。

    本記事では、Dockerの基本概念、導入方法、基本コマンドについて説明しました。

    Dockerを活用することで、開発の柔軟性が増し、環境管理の負担が軽減されます。

    まずは、Dockerをインストールし、簡単なコンテナを動作させるところから始めてみましょう。

    タイトルとURLをコピーしました