Dockerでドメイン名を設定する方法

emile-perron-xrVDYZRGdw4-unsplash.jpg

質問

Dockerでドメイン名を設定する方法


解答

Docker コンテナにドメイン名(ホスト名)を設定するには、以下の方法があります。

目的に応じていくつかのやり方がありますので、用途別に整理して説明します。


✅ 目的ごとの整理

目的方法備考
コンテナ内部のホスト名(FQDN)を設定したい--hostname オプション起動時に指定する
コンテナに外部から独自のドメイン名でアクセスしたいDNS設定 or hosts 書き換え開発環境でよく使う
Docker Compose でホスト名を設定したいhostname キーを使う複数コンテナ管理時
リバースプロキシ経由でドメインにアクセスしたいNginx/Traefik + Let's Encryptなどサービス公開用途

1. コンテナのホスト名(内部)を設定する方法

docker run --hostname myapp.example.com myimage
  • コンテナ内で hostname コマンドを実行すると、myapp.example.com と表示されます。

  • あくまで内部的な名前です。外部アクセスとは別です。


2. 外部からドメイン名でアクセスできるようにする方法

(A)開発用:/etc/hosts に追記

ローカル開発環境で手軽に設定するなら:

例:

127.0.0.1 myapp.local

これにより、ブラウザや curl http://myapp.local でアクセス可能になります。


(B)実運用:DNSで設定

  • ドメイン管理サービスで A レコードや CNAME レコードを使い、Docker ホストの IP に紐付けます。

  • 例:myapp.example.com203.0.113.10


3. Docker Compose でホスト名を設定する

version: "3"services:  web:    image: nginx    hostname: myapp.example.com
  • コンテナ内で hostnamemyapp.example.com になります。

  • Docker Compose の container_name とは異なります。


4. リバースプロキシを使ってドメインで公開する方法(本番向け)

Nginx + Docker:

server {    listen 80;    server_name myapp.example.com;  
location / { proxy_pass http://localhost:8080; # Dockerコンテナのポート
proxy_set_header Host $host; }}
  • ドメイン名でアクセスでき、HTTPS(SSL)対応も可能

  • Let's Encrypt + Certbot を使って無料でSSL化できる

あるいは:

Traefik や Caddy などの自動SSL対応リバースプロキシも便利です


📝 まとめ

目的方法
コンテナ内部のFQDNを設定--hostname または docker-compose.ymlhostname
外部から独自ドメインでアクセスDNS設定 or /etc/hosts に追記
公開サーバでドメイン名に対応NginxやTraefikでリバースプロキシ構成








Docker&仮想サーバー完全入門 Webクリエイター&エンジニアの作業がはかどる開発環境構築ガイド [ リブロワークス ]

価格:2420円
(2025/8/16 12:02時点)
感想(1件)



 



この記事へのコメント

広告です。クリックいただけると励みになります。