初心者が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 の際にパスワードの代わりにこのトークンを入力し、無事にリモートリポジトリへアップロードできました。
この経験で、セキュリティ面の最新ルールを理解するとともに、認証の仕組みを学べました。
おわりに
この取り組みを通じて、私は以下のような力を身につけることができました。
-
手を動かしながら学ぶ実践力
まったくの初心者からDockerを用いた環境構築に取り組み、必要な技術を調べながら一歩ずつ進めました。 -
トラブル対応力と問題解決力
WSL2の更新、Docker Engineの起動エラー、Gitの認識エラー、GitHubへのpush認証エラーなど、複数の課題に直面しましたが、都度原因を調べて解決しました。 -
アウトプットを意識した発信力
学んだことやつまずいたポイントを、ブログ記事やGitHub上で形に残すことで、情報発信にも挑戦しました。
このように、単なる知識の習得ではなく「自ら手を動かし、課題を解決し、成果を形に残す」という姿勢を大切にしていきたいと思っています。
今後は以下の技術にも取り組み、より現場に近いスキルを身につけたいと考えています
-
Docker Compose を使った複数コンテナ構成の管理
-
GitHub Actions を使ったCI/CDの導入
-
Linuxコマンドやシェルスクリプトによる運用自動化
-
インフラ監視(Prometheus、Grafana など)
この記事が、同じように初めて技術に挑戦する方や、インフラ職に関心を持つ学生の励みになれば嬉しいです!
Discussion