
Docker超入門:Dockerのデフォルト・ネットワーク解説 ― bridge・host・none の違い
Dockerをインストールした直後、特に何も設定していなくても「デフォルトのネットワーク」がすでに用意されています。これは、コンテナが通信するための基本的な土台のようなもので、それぞれユースケースに合わせたネットワークモードが存在しています。
デフォルト・ネットワークの種類を整理
Dockerには最初から bridge, host, none の3つが用意されています。それぞれの特徴を表にまとめるとこんな感じです。
| ネットワーク | ドライバ | 説明 |
|---|---|---|
| none | null | ネットワークアクセスなし。完全に隔離されたいときに使う。 |
| host | host | コンテナがホストOSのネットワークを直接共有。ホストのIPをそのまま利用できる。 |
| bridge | bridge | デフォルトのネットワーク。NATを使って外部と通信できる。特に指定しないとここに接続される。 |
それぞれのネットワークの動き方
- bridgeネットワーク
一番よく使うネットワークモードです。コンテナはdocker0という仮想ブリッジを通して通信し、NAT(IPマスカレード)経由で外部とやり取りします。外部から直接コンテナにアクセスするわけではないので、安全性が高めです。 - hostネットワーク
コンテナとホストOSがまるで一体化したように動きます。同じネットワークスタックを共有するので、ホストのIPをそのまま使えます。ただし、セキュリティ的には制限が弱くなるので、慎重に使うべきモードです。 - noneネットワーク
完全にネットワークから切り離された孤立状態。ネットワークアクセス不要なバッチ処理や検証用途に向いています。
コマンドでネットワークを確認してみよう
Dockerのデフォルトネットワークを確認するには、 docker network ls コマンドを使います。
docker network ls [OPTIONS]このコマンドを実行すると、ネットワークのIDや名前、ドライバ、スコープが表示されます。
出力例
PS C:\Users\joeac> docker network ls
NETWORK ID NAME DRIVER SCOPE
5654b2b1b9f1 bridge bridge local
edc5f4ea708e host host local
0b1b4553af27 none null localオプションも知っておくと便利
| オプション | 説明 |
|---|---|
| --filter , -f | 条件を指定してフィルタリング。例: -f driver=bridge |
| --format | Goテンプレートで出力を整形 |
| --quiet , -q | ネットワークIDのみを表示 |
普段はシンプルに docker network ls でOKですが、大規模環境ではフィルタや整形が役立ちます。
まとめ
- Dockerには最初から bridge / host / none の3つのネットワークが用意されている
- 何も指定しないと bridge がデフォルトで利用される
- host はホストのネットワークと直結するので高速だが注意が必要
- none は完全に隔離してネットワーク不要な用途に向く
docker network lsコマンドで簡単に一覧を確認できる
デフォルトのネットワークを正しく理解しておくと、コンテナをどう配置するか、セキュリティをどう確保するかがすごくイメージしやすくなりますよ!
