Docker コンテナにドメイン名(ホスト名)を設定するには、以下の方法があります。
目的に応じていくつかのやり方がありますので、用途別に整理して説明します。
✅ 目的ごとの整理
| 目的 | 方法 | 備考 |
|---|
| コンテナ内部のホスト名(FQDN)を設定したい | --hostname オプション | 起動時に指定する |
| コンテナに外部から独自のドメイン名でアクセスしたい | DNS設定 or hosts 書き換え | 開発環境でよく使う |
| Docker Compose でホスト名を設定したい | hostname キーを使う | 複数コンテナ管理時 |
| リバースプロキシ経由でドメインにアクセスしたい | Nginx/Traefik + Let's Encryptなど | サービス公開用途 |
1. コンテナのホスト名(内部)を設定する方法
docker run --hostname myapp.example.com myimage
2. 外部からドメイン名でアクセスできるようにする方法
(A)開発用:/etc/hosts に追記
ローカル開発環境で手軽に設定するなら:
例:
127.0.0.1 myapp.local
これにより、ブラウザや curl http://myapp.local でアクセス可能になります。
(B)実運用:DNSで設定
3. Docker Compose でホスト名を設定する
version: "3"services: web: image: nginx hostname: myapp.example.com
4. リバースプロキシを使ってドメインで公開する方法(本番向け)
Nginx + Docker:
server { listen 80; server_name myapp.example.com;
location / { proxy_pass http://localhost:8080; # Dockerコンテナのポート
proxy_set_header Host $host; }}
あるいは:
Traefik や Caddy などの自動SSL対応リバースプロキシも便利です
📝 まとめ
| 目的 | 方法 |
|---|
| コンテナ内部のFQDNを設定 | --hostname または docker-compose.yml の hostname |
| 外部から独自ドメインでアクセス | DNS設定 or /etc/hosts に追記 |
| 公開サーバでドメイン名に対応 | NginxやTraefikでリバースプロキシ構成 |
この記事へのコメント