本サイトは広告により収益を得ています

コンテナ技術の基礎(Dockerの基本操作とイメージ作成)

コンテナ技術の基礎(Dockerの基本操作とイメージ作成)

2025年11月10日
フリー検定
広告

目次

現在: 6 / 12

バックエンドエンジニアに関する検定はこちら

面倒な会員登録も不要!すぐに受験!

無料で受験する

現代のアプリケーション開発とデプロイにおいて、コンテナ技術は必須のスキルとなっています。コンテナは、アプリケーションとその実行に必要なすべての環境(ライブラリ、設定ファイルなど)を一つにパッケージ化し、どこでも一貫して実行できるようにする技術です。この章では、コンテナ技術のデファクトスタンダードであるDockerに焦点を当て、その基礎と操作方法を解説します。


1. 仮想環境とコンテナの違い

コンテナ技術を理解する上で、従来の**仮想マシン(VM)**との違いを明確にすることが重要です。

  • 仮想マシン(VM):

    • ホストOS上にハイパーバイザーを介して、ゲストOS全体(カーネルを含む)をエミュレートし、その上にアプリケーションを実行します。

    • メリットは完全なOSレベルの分離ですが、OS自体の起動や動作に大きなリソース(CPU、メモリ)を消費し、起動に時間がかかります。

  • コンテナ(Docker):

    • ホストOSのカーネルを共有し、その上にアプリケーションの実行環境(ライブラリ、バイナリなど)だけを分離してパッケージ化します。

    • OSカーネルを共有するため、VMよりもはるかに軽量で高速に動作し、リソース消費も抑えられます。

コンテナは、**「手軽で高速な軽量仮想環境」**を提供し、「自分のPCで動いたのに、本番環境で動かない」という問題を解消します。


2. Dockerの基本概念

Dockerを扱う上で不可欠な、3つの基本要素を理解しましょう。

  • Docker Image(イメージ):

    • アプリケーションを実行するために必要なすべての情報(コード、ランタイム、システムツール、ライブラリ、設定)を読み取り専用でパッケージ化したものです。

    • コンテナを作成するための設計図であり、一度作成すればどこでも同じコンテナを起動できます。

  • Docker Container(コンテナ):

    • イメージを基に作成された、アプリケーションの**実行可能なインスタンス(実体)**です。

    • コンテナ内はホストOSから分離されており、独立したファイルシステム、ネットワーク、プロセス空間を持ちます。

    • 起動、停止、削除が迅速に行えます。

  • Dockerfile:

    • イメージを作成するための手順を記述したテキストファイルです。

    • ベースとなるOSの指定、ファイルのコピー、必要なパッケージのインストール、実行コマンドの設定などを、特定の命令群(FROM, COPY, RUN, CMDなど)を使って記述します。


3. Dockerの基本操作

コマンドラインでの主要なDocker操作を習得します。

  • イメージの取得:

    Bash

    docker pull <イメージ名>:<タグ>
    # 例: docker pull nginx:latest
    
  • コンテナの実行(起動):

    Bash

    docker run -d -p <ホストポート>:<コンテナポート> --name <コンテナ名> <イメージ名>
    # 例: docker run -d -p 8080:80 --name my-web nginx
    # -d: デタッチモード(バックグラウンド実行)
    # -p: ポートフォワーディング(ホストとコンテナのポートを紐付ける)
    
  • コンテナの一覧表示:

    Bash

    docker ps         # 実行中のコンテナ一覧
    docker ps -a      # 停止中のコンテナも含む全コンテナ一覧
    
  • コンテナの停止と削除:

    Bash

    docker stop <コンテナ名またはID>
    docker rm <コンテナ名またはID>
    
  • コンテナ内へのアクセス:

    Bash

    docker exec -it <コンテナ名またはID> /bin/bash
    # 実行中のコンテナ内でシェル(bash)を起動し、操作する
    

4. Dockerイメージの作成 (Dockerfile)

アプリケーションをコンテナ化するためのイメージ作成手順を学びます。

  1. Dockerfileの作成: プロジェクトのルートディレクトリにDockerfileという名前のファイルを作成します。

  2. 基本的な記述例:

    Dockerfile

    # ベースイメージの指定 (アプリケーションの実行環境)
    FROM python:3.10-slim
    
    # 作業ディレクトリの設定
    WORKDIR /app
    
    # アプリケーションコードをコンテナ内にコピー
    COPY . /app
    
    # 必要なパッケージのインストール (例: Pythonの依存ライブラリ)
    RUN pip install --no-cache-dir -r requirements.txt
    
    # 外部に公開するポートの指定
    EXPOSE 8000
    
    # コンテナが起動したときに実行されるコマンド
    CMD ["python", "app.py"]
    
  3. イメージのビルド(作成): Dockerfileがあるディレクトリで以下のコマンドを実行します。

    Bash

    docker build -t <イメージ名>:<タグ> .
    # -t: イメージに名前とタグを付ける
    # .: ビルドコンテキスト(Dockerfileを探す場所)
    
  4. 作成したイメージの実行:

    Bash

    docker run -d -p 8000:8000 <イメージ名>:<タグ>
    

この一連のプロセスにより、開発環境、テスト環境、本番環境のすべてで、まったく同じ実行環境を確実に構築・デプロイすることが可能になります。

バックエンドエンジニアに関する検定はこちら

面倒な会員登録も不要!すぐに受験!

無料で受験する
広告

検定一覧はこちらから

様々なジャンルの検定から選んで、あなたの知識を試してみましょう。

検定一覧を見る

関連記事

広告