2時間で学ぶ!

Dockerハンズオン講座

プログラミング初心者のためのインタラクティブなDocker入門。このページに沿って進めるだけで、Dockerの基本が身につきます。

今日のゴール

  • Dockerの基本的な仕組みがわかる!
  • Dockerの基本的なコマンドが使える!
  • 自作したWebページをDockerで動かせる!

1. 概要

まず、「Dockerとは何か?」そして「なぜ便利なのか?」を理解しましょう。

Dockerって何?

一言でいうと、「アプリケーションの実行環境をまるごとパッケージ化して、どこでも簡単に動かせるようにする技術」です。

なぜDockerが便利なの? 🤔

「自分のPCでは動いたのに、友達のPCやサーバーでは動かない…」こんな経験はありませんか?

"It works on my machine!" 問題

  • OSの違い (Windows / macOS)
  • ソフトウェアのバージョンの違い
  • 必要なライブラリが入っていない

これらの「環境の違い」が原因でエラーが起こることがよくあります。Dockerコンテナという箱に、アプリケーションと実行に必要なものを全部詰めてしまうことで、この問題を解決します。

仮想マシン(VM)との違いは?

コンテナ (Docker) 🐳

  • 起動速度: 速い(数秒)
  • サイズ: 軽い(数十MB〜)
  • 仕組み: ホストOSの機能を共有

仮想マシン (VM) 💻

  • 起動速度: 遅い(数分)
  • サイズ: 重い(数GB〜)
  • 仕組み: OSをまるごと起動

💡 DockerはOSのフリをするのが上手いので、軽くて速い!と覚えておきましょう。

2. 基本のキ

Dockerを使いこなすための3つの重要用語と、その関係性を学びましょう。

📜

Dockerfile

(レシピ)

docker build
📦

Dockerイメージ

(たい焼きの型)

docker run
🏃

Dockerコンテナ

(たい焼き)

☝️ 上の項目をクリックして説明を読んでみましょう。

3. ハンズオン

いよいよ実践です。コマンドをコピー&ペーストして、Dockerを体験してみましょう!

ハンズオン①:コンテナを動かしてみよう!

1-1: `hello-world`を動かす

ターミナル(コマンドプロンプト)を開いて、以下のコマンドを実行します。Dockerが正しく動くか確認できます。

docker run hello-world

1-2: Webサーバー(Nginx)を動かす

次に、Webサーバーのコンテナを起動します。`-p 8080:80`は、PCの8080番ポートをコンテナの80番ポートにつなぐおまじないです。

docker run -d -p 8080:80 --name my-nginx nginx

1-3: ブラウザで確認

コマンドを実行したら、Webブラウザで http://localhost:8080 にアクセスしてください。Nginxのウェルカムページが表示されれば成功です!

1-4: 後片付け

起動したコンテナを停止し、削除します。

docker stop my-nginx
docker rm my-nginx

ハンズオン②:Dockerfileで自作イメージを作ろう!

2-1: 準備

まず、作業用のフォルダ(例: `docker-handson`)を作成し、その中に`index.html`というファイルを作って、以下の内容を貼り付けます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>Docker Handson</title>
</head>
<body>
    <h1>Hello Docker!</h1>
    <p>これは私のオリジナルWebページです。</p>
</body>
</html>

2-2: Dockerfile作成

次に、同じフォルダ内に`Dockerfile`(拡張子なし)というファイル名でファイルを作成し、以下の内容を貼り付けます。これがイメージの設計図になります。

# ベースイメージとして公式のNginxイメージを使用
FROM nginx:latest

# index.htmlをコンテナのWebサーバーの公開ディレクトリにコピー
COPY index.html /usr/share/nginx/html/index.html

2-3: イメージをビルドする

ターミナルで作業フォルダに移動し、以下のコマンドでイメージをビルド(作成)します。

docker build -t my-original-page .

2-4: 自作コンテナを起動!

最後に、自分で作ったイメージからコンテナを起動します。

docker run -d -p 8080:80 --name my-web my-original-page

ブラウザで http://localhost:8080 にアクセスしてください。自分で作ったWebページが表示されれば大成功です!🎉

4. まとめと次のステップ

これであなたもDockerの第一歩を踏み出しました!さらにステップアップするための道筋を紹介します。

Docker Compose

複数のコンテナ(Webサーバー+DBなど)をまとめて管理するためのツール。実際の開発では必須です。

Docker Hub

自分で作ったイメージを公開・共有できるサービス。GitHubのDocker版のようなものです。

自分のアプリをDocker化

今日の内容を参考に、自分が作ったことのあるアプリをDockerで動かしてみましょう!