
Docker超入門:ホストと同じIPを共有!Docker hostネットワークの仕組みと注意点
Dockerのネットワークと聞くと、まずは「bridge」を思い浮かべる人が多いと思いますが、実は hostネットワーク という特別なモードも用意されています。これは一言でいうと「コンテナがホストと同じIPアドレスを共有するネットワークモード」です。まるでホストの一部としてコンテナが動いているような感覚になるんです。

hostネットワークの特徴
| 項目 | 説明 |
|---|---|
| ネットワークドライバ | host ドライバを利用する。 |
| ネットワークインターフェース | ホストと同じものを使用 |
| IPアドレス | ホストと同じアドレスを共有 |
| 通信速度 | 仮想化レイヤーを介さないので非常に高速 |
| 分離性 | コンテナ間のネットワーク分離ができない。 |
| 注意点 | ポート競合やセキュリティリスクがある。 |
どうやって使うの?
コンテナを起動するときに、ネットワークオプションとして --network host を指定します。
docker run --network host <イメージ名>これだけで、そのコンテナはホストと同じIPを共有し、ホストのネットワークに直接アクセスできるようになります。
コマンドとオプションの解説
| コマンド / オプション | 説明 |
|---|---|
| docker run | コンテナを起動するコマンド |
| --network host | コンテナをホストのネットワークスタックに直接接続する。 |
| <イメージ名> | 起動するDockerイメージの指定 |
例えば、Nginxをホストネットワークで動かすならこんな感じ。
docker run --network host -d nginxこの場合、ホストのポート80に直接Nginxが立ち上がるので、ブラウザからアクセスするとそのまま表示されます。
利点と制限を整理してみよう
| 分類 | 内容 |
|---|---|
| 利点 | - 高速なネットワーク通信(仮想化のオーバーヘッドがない) - ネットワーク設定がシンプルで楽ちん |
| 制限 | - コンテナ間の分離が効かない - ホストと同じIPを使うため、ポート競合が発生しやすい - セキュリティ的にリスクがある(ホストと強く結びつくため) |
図でイメージしよう

まとめ
hostネットワークは、コンテナをホストと同じIPで動かすことができる便利な仕組みです。高速でシンプルですが、ネットワーク分離が効かないためセキュリティリスクやポート競合の問題があります。なので「どうしても高速通信が必要」「ホストと同じIPで公開したい」といったケースでのみ使うのがオススメです。
