Docker ネットワーク

Docker 中級

Mike Metzger

Data Engineering Consultant

Docker ネットワーキング

  • Docker には豊富なネットワーク機能があります
  • コンテナ、ホスト、外部システム間の通信用にネットワークを作成可能
  • ネットワーク操作の主要コマンドを扱います
Docker 中級

Docker のネットワーク種別

  • Docker はドライバで複数のネットワーク種別を提供
    • bridge: 既定。外向き接続可。公開で内向きも可
    • host: ホストとコンテナ間で完全通信
    • none: コンテナをネットワークから隔離
    • そのほか多数。カスタムドライバも可
  • 本コースでは主に bridge で独自ネットワークを作成
Docker 中級

Docker ネットワークの操作

主なコマンド:

  • docker network
    • docker network <command>
    • docker network <command> --help
    • docker network ls すべてのネットワークを一覧
    • docker network create ネットワーク作成
    • docker network rm ネットワーク削除
Docker 中級

Docker ネットワーク例

  • mynetwork という Docker ネットワークを作成
    repl@host:~$ docker network create mynetwork
    
5ff0febab98f73b74dd753eb44a30f7d7291052b3b1d58b0134589221cb8e33d
repl@host:~$ docker network ls

NETWORK ID NAME DRIVER SCOPE 2edc5ae4838c bridge bridge local a92988382711 host host local 5ff0febab98f mynetwork bridge local 5464ed866dad none null local
Docker 中級

コンテナをネットワークに接続

  • コンテナをネットワークへ接続する方法
  • docker run --network <networkname> ...
  • docker run --network mynetwork ubuntu bash
  • 後から接続することも可能
    • docker network connect <networkname> <container>
    • docker network connect mynetwork ubuntu-B
Docker 中級

docker network inspect

  • ネットワークの詳細確認方法
  • docker network inspect <networkname>
  • 設定情報と、コンテナに割り当てられたIPアドレスを表示
    repl@host:~$ docker network inspect mynetwork
    
Docker 中級

docker network inspect の例

        "Name": "mynetwork",
        ...
        "Driver": "bridge",
        ...
        Containers": {    "2be08aa942029191350d4bceb8816254af8713dd6f7dcbadcab8f068f7dbfdfa": {
                "Name": "unruffled_kare",
                "EndpointID": "29739356ae200e1e901d2eabef05efaca0fb37e1a4e1a4c3bf369f2892ca6c4b",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
Docker 中級

練習しましょう!

Docker 中級

Preparing Video For Download...