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イメージ
(たい焼きの型)
Dockerコンテナ
(たい焼き)
☝️ 上の項目をクリックして説明を読んでみましょう。
1. Dockerfile (レシピ)
Dockerイメージの作り方を書いたテキストファイル。このファイルをもとに`build`してイメージを作成します。
2. Dockerイメージ (設計図)
コンテナを作るためのテンプレート。OS、ミドルウェア、アプリなど、コンテナに必要なものが全部入っています。
3. Dockerコンテナ (動いている実体)
イメージから作られた、実際に動いているアプリケーション環境。1つのイメージから、コンテナは何個でも作れます。
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で動かしてみましょう!