Docker入門:コンテナ技術で開発を効率化しよう

はじめに

近年の開発現場では、環境構築の手間を減らすために「コンテナ技術」が広く利用されています。その代表格が Docker です。 Dockerを使えば、「動く環境」をそのまま共有できるため、「自分の環境では動いたのに…」という問題を解決できます。 本記事では、Dockerの基本概念を学び、実際にコンテナを動かすハンズオンまで行います。

1. Dockerとは?

Dockerはアプリケーションをコンテナという単位で実行・管理するためのプラットフォームです。 コンテナは、OS上でアプリケーションとその依存関係をまとめて動かす軽量な仮想環境のようなものです。

仮想マシンとの違い

項目仮想マシンDockerコンテナ
起動速度数十秒〜数分数秒
サイズ数GB〜数十GB数百MB程度
隔離方法仮想ハードウェアOSレベル
利用リソース多い軽量

DockerはOSカーネルを共有するため、軽量かつ高速です。

2. Dockerの基本用語

用語説明
イメージ (Image)コンテナの設計図。アプリや設定が含まれる。
コンテナ (Container)イメージを実行した実体。
Dockerfileイメージを自動生成するためのレシピ。
Docker Hubイメージの共有・配布サービス。

3. Dockerのインストール

macOS / Windows

Docker公式サイトから「Docker Desktop」をインストールします。 https://www.docker.com/products/docker-desktop/

Linux (例:Ubuntu)

sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker 

インストール確認:

docker --version

4.ハンズオン:Nginxコンテナを動かしてみよう

ここでは、最も簡単な「Nginx(Webサーバ)」をDockerで起動してみましょう。

ステップ1:Nginxイメージを取得

docker pull nginx

公式イメージをDocker Hubからダウンロードします。

ステップ2:コンテナを起動

docker run -d -p 8080:80 --name my-nginx nginx
  • -d:バックグラウンドで実行
  • -p 8080:80:ホストの8080番ポートをコンテナの80番ポートに接続
  • –name my-nginx:コンテナに名前をつける

ステップ3:ブラウザで確認

ブラウザで以下にアクセスします: http://localhost:8080

「Welcome to nginx!」と表示されれば成功です。

ステップ4:ログ確認と停止

docker logs my-nginx
docker stop my-nginx

5.ハンズオン:Dockerfileで独自コンテナを作る

ステップ1:作業ディレクト

mkdir myapp
cd myapp

ステップ2:index.htmlを作成

<!DOCTYPE html>
<html>
    <head><title>Hello Docker</title></head>
    <body><h1>Hello, Docker World!</h1></body>
</html>

ステップ3:Dockerfileを作成

FROM nginx:latest
COPY index.html /usr/share/nginx/html/index.html

ステップ4:イメージをビルド

docker build -t my-nginx-app .

ステップ5:コンテナを起動

docker run -d -p 8081:80 --name my-app my-nginx-app

ステップ6:ブラウザで起動

http://localhost:8081

「Hello, Docker World!」が表示されれば成功です。

6.まとめ

本記事ではDockerの基本概念と、Nginxを使った簡単なハンズオンを行いました。 次のステップとしては以下のテーマを学ぶとさらに理解が深まります。

  • Docker Composeによる複数コンテナの管理
  • Docker Volumeでデータ永続化
  • Dockerfileのベストプラクティス
  • CI/CDパイプラインへの統合

投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です