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をコピーしました