はじめに
レスポンシブデザインを作っても、PCの開発者ツールだけだと「実機での見え方」とズレることがあります。
たとえば以下は実機で気づきやすいポイントです。
- フォントの見え方(OS/ブラウザ差)
- タップ領域の狭さ、押しづらさ
- 100vh/スクロール挙動、アドレスバーの影響
- 画像の拡大縮小や余白の出方
- 回線速度や読み込み体感
そこで便利なのが Dockerでローカル配信 → スマホ実機でアクセス する方法です。
NginxをDockerで立ち上げれば、環境依存なくサクッと「実機確認用のURL」を作れます。
この記事でできること(ゴール)
- Docker + NginxでHTML/CSSをローカル配信
- 同一Wi-Fiのスマホからアクセスして実機確認
- 編集→即反映の開発フロー(ボリュームマウント)
- よくある接続トラブルの解消
前提条件
- Docker がインストール済み(Docker DesktopでもOK)
- PCとスマホが 同じWi-Fi(同一ネットワーク) に接続
index.htmlとstyle.cssなどの静的ファイルがある(レスポンシブでも通常ページでもOK)
【ハンズオン】Dockerで配信 → スマホ実機で確認
ステップ1:プロジェクト構成を作る
以下のように配置します(例)。
device-check/
├─ site/
│ ├─ index.html
│ └─ style.css
└─ docker-compose.yml
site/ 配下が公開されるWebコンテンツになります。
ステップ2:サンプルHTML/CSSを用意(既存でもOK)
site/index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Docker配信で実機確認</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<header class="header">
<h1>実機確認ページ</h1>
<p>スマホで開いて表示をチェックします。</p>
</header>
<main class="container">
<section class="card">カードA</section>
<section class="card">カードB</section>
<section class="card">カードC</section>
</main>
</body>
</html>
site/style.css
body { margin: 0; font-family: Arial, sans-serif; }
.header { padding: 16px; background: #f5f5f5; }
.container { display: flex; gap: 12px; padding: 16px; }
.card { flex: 1; padding: 16px; border: 1px solid #ddd; background: #fff; }
@media (max-width: 768px) {
.container { flex-direction: column; }
}
ステップ3:Docker ComposeでNginx配信を作る(編集→即反映)
docker-compose.yml
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html:ro
ポイント:
ports: "8080:80"でPCの8080番を公開volumesでsite/をNginxの公開ディレクトリにマウント:ro(読み取り専用)で安全に
ステップ4:起動する
docker compose up -d
PCのブラウザで確認:
http://localhost:8080
表示できればOKです。
ステップ5:PCのローカルIPを確認する(スマホからアクセスするため)
スマホは localhost ではPCに到達できません。
PCのIP(例:192.168.1.10)を調べます。
Windows
- 「設定」→「ネットワークとインターネット」→接続中のWi-Fi → プロパティ
- もしくは
ipconfigで IPv4 を確認
macOS
- 「システム設定」→「ネットワーク」→Wi-Fi → 詳細
- もしくは
ifconfigで確認
Linux
ip aなどで確認
ステップ6:スマホでアクセス(実機確認)
スマホのブラウザで以下を開きます。
http://<PCのIPアドレス>:8080
例:
http://192.168.1.10:8080
これで 同一Wi-Fi内の実機確認 ができます 🎉
実機確認でチェックすべきポイント(レスポンシブ品質)
- 文字が小さすぎないか(最小16px目安)
- タップ要素の間隔(誤タップしない余白)
- 1カラム化のタイミング(768pxだけでなく崩れ幅で調整)
- 画像がはみ出ないか(
max-width:100%) - スクロール時のヘッダー固定、100vh挙動
- 回転(縦/横)したときの崩れ
よくあるトラブルと対処法
1) スマホからアクセスできない(タイムアウト)
チェック順はこれが鉄板です。
- PCとスマホが 同じWi-Fi にいるか(ゲストWi-Fiだと隔離されることあり)
- URLが
http://PCのIP:8080になっているか(localhostにしていないか) - Windowsの場合、ファイアウォールで8080がブロックされていないか
- 一時的に許可ルール追加、またはDocker Desktopのネットワーク許可を確認
2) 表示はできるが更新が反映されない
- スマホブラウザのキャッシュを疑う(プライベートモードで開くと早い)
- PC側でファイル保存できているか確認
docker compose up -dは起動済みなので再起動不要(通常は保存→リロードでOK)
3) 会社/公共Wi-Fiで見れない
- 端末間通信がブロックされている可能性が高いです
→ 自宅Wi-Fiやテザリングなど、端末間通信できる環境で試すのが確実
まとめ
Dockerで静的サイトを配信すると、スマホ実機確認のための環境が一瞬で作れます。
- Docker + Nginxで
http://localhost:8080配信 - PCのIPを使って
http://PC_IP:8080にスマホからアクセス - ボリュームマウントで「編集→即反映」の快適フロー
コメントを残す