🎃

初心者がDockerでApacheサーバーを立ち上げてみた話【実践記】

に公開

初心者がDockerでApacheサーバを立ち上げてみた話

はじめに

私は大学3年生でインフラエンジニア職を目指しています!
初心者ながらDockerを使ってApacheサーバの構築に挑戦しました。
この記事では実際にやったことや、つまづいたポイント、学んだことをまとめています。
同じ初心者の方にも役立つ内容になれば嬉しいです。

やったこと

Windows11にDocker Desktopをインストール

Dockerはコンテナ技術を使うためのソフトウェアです。
Windows11に公式サイトからインストーラーをダウンロードし、簡単にインストールできました。
インストール中に「WSL2」の導入を促されましたが、これはWindowsのLinux互換機能で、Dockerが安定して動作するために必要です。
インストール後、Docker Desktopを起動すると初回セットアップ画面が表示されました。
Docker Desktopは公式サイトからダウンロードできます。
https://www.docker.com/products/docker-desktop

WSL2の設定トラブルを解決しDocker Engineを起動

DockerはWSL2の最新バージョンを必要としますが、最初は古いバージョンのためにDocker Engineが起動しませんでした。
アップデート後にWindowsを再起動し、Docker Desktopを再度起動するとエンジンが正常に稼働しました。

WSL2の詳細や導入方法はMicrosoft公式ドキュメントを参照しました。
https://learn.microsoft.com/ja-jp/windows/wsl/install

Dockerfileを作成してApacheサーバをDockerコンテナで起動

DockerfileはDockerコンテナの設計図です。
以下の内容で作成しました。

公式のApacheイメージを使い、独自のHTMLファイルをサーバにコピーしています。
このファイルを保存したディレクトリで以下のコマンドを実行し、イメージをビルドしました。

docker build -t my-apache .
docker run -d -p 8080:80 my-apache

ブラウザで http://localhost:8080 にアクセスして動作確認

ブラウザで指定のURLにアクセスし、自作のApacheサーバが起動していることを確認しました。
「これは自分で作ったApacheサーバです!」という自作のHTMLが表示されました!

感動しました!!

GitHubにソースコードをアップロードして成果を公開

ローカルで作成したファイルをGit管理し、GitHubにプッシュしました。

Gitの初期設定(ユーザー名・メールアドレス登録)を行い、初回コミットを実施。
GitHubでリポジトリを作成し、リモートリポジトリに紐付け。
Push時はパスワードの代わりにパーソナルアクセストークン(PAT)を使い安全に認証しました。

GitをWindowsにインストールする際は以下から最新版をダウンロードしました。
https://git-scm.com/download/win

GitHubでパスワード認証廃止後、パーソナルアクセストークンを作成しました。
https://github.com/settings/tokens

つまずいたポイント・解決法

Docker Engineが起動しなかった→ WSL2のアップデートで解決

Docker DesktopはWindowsのWSL2(Windows Subsystem for Linux 2)を使ってコンテナを動かしています。最初、Docker Engineが起動しなかったのは、WSL2のバージョンが古かったためでした。
具体的には、PowerShellで次のコマンドを実行してWSL2を最新に更新しました。

wsl --update

更新後、Windowsを再起動しDocker Desktopを再起動すると、問題なくエンジンが起動しました。
この経験から、WSL2やDockerなど基盤技術のバージョン管理の重要性を学びました。

Gitコマンドが使えなかった → Gitをインストールして設定

初めてGitを使おうとしたとき、git コマンドが認識されずエラーが出ました。
これはGitがWindowsにインストールされていなかったからです。

Git for Windows の公式サイトからインストーラーをダウンロードしてインストールしました。
インストール後は、以下の設定でユーザー名とメールアドレスをGitに登録しました。

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

これで初回のコミットができるようになり、Gitの使い方の基本を理解しました。

GitHubへのプッシュで認証エラー → パーソナルアクセストークンを利用

GitHubは2021年からパスワード認証を廃止し、パーソナルアクセストークン(PAT)での認証を必須にしています。
そのため、git push 時にパスワードを求められた場合でも、GitHubのウェブサイトで生成したアクセストークンを使わなければなりません。
アクセストークンはGitHubの設定ページで作成します。
「Fine-grained tokens」から新しいトークンを生成し、リポジトリの読み書き権限を設定しました。
git push の際にパスワードの代わりにこのトークンを入力し、無事にリモートリポジトリへアップロードできました。
この経験で、セキュリティ面の最新ルールを理解するとともに、認証の仕組みを学べました。

おわりに

この取り組みを通じて、私は以下のような力を身につけることができました。

  1. 手を動かしながら学ぶ実践力
    まったくの初心者からDockerを用いた環境構築に取り組み、必要な技術を調べながら一歩ずつ進めました。

  2. トラブル対応力と問題解決力
    WSL2の更新、Docker Engineの起動エラー、Gitの認識エラー、GitHubへのpush認証エラーなど、複数の課題に直面しましたが、都度原因を調べて解決しました。

  3. アウトプットを意識した発信力
    学んだことやつまずいたポイントを、ブログ記事やGitHub上で形に残すことで、情報発信にも挑戦しました。

このように、単なる知識の習得ではなく「自ら手を動かし、課題を解決し、成果を形に残す」という姿勢を大切にしていきたいと思っています。

今後は以下の技術にも取り組み、より現場に近いスキルを身につけたいと考えています

  1. Docker Compose を使った複数コンテナ構成の管理

  2. GitHub Actions を使ったCI/CDの導入

  3. Linuxコマンドやシェルスクリプトによる運用自動化

  4. インフラ監視(Prometheus、Grafana など)

この記事が、同じように初めて技術に挑戦する方や、インフラ職に関心を持つ学生の励みになれば嬉しいです!

Discussion