LoginSignup
3
5

More than 5 years have passed since last update.

別々のリポジトリで立てたdocker-composeを同一ネットワークに所属させる方法

Last updated at Posted at 2018-11-09

はじめに

ローカル開発環境を作成する際に、ローカル開発環境用のリポジトリを作るのは依存度が高くなってしまうので嫌だった。
なので同一ネットワークに所属させてローカル開発環境はそれぞれのリポジトリに置くようにしてます。
今後、よりよいベスト・プラクティスを見つけようとは思ってますが一応問題なく動いているのでその方法を残します。

やり方

docker-dompose: version 3.5

サンプルはnetworks以外はどうでもよかったので適当です

ネットワークを作成する

backend/docker-compose.yml
version: '3.5'
services:
  app1:
    image: alpine:3.4
    ports:
      - 50000:50000
    networks:
      - mynet #←serviceのapp1を作成したnetworkに所属させる
    command: top
networks:
  mynet: #←自分の好きなネットワーク名
    name: mynet #←自分の好きなネットワーク名

上記のファイルのnetworksにnameのみ定義しておくと自分で命名して新規ネットワークを作成できます

$ cd backend
$ docker-compose up -d
$ docker network ls
# ※結果からbridge host noneは抜いてます              
NETWORK ID          NAME                DRIVER              SCOPE
26350ce7ba23        mynet               bridge              local

既に存在しているネットワークに所属させる

networksに先程作成したネットワークを宣言します
違いはexternal: trueのみでこれがあると既に存在しているネットワークへの参照をとれます

frontend/docker-compose.yml
version: '3.5'
services:
  app2:
    image: alpine:3.4
    ports:
      - 50001:50001
    networks:
      - mynet
    command: top
networks:
  mynet:
    external: true
    name: mynet

$ cd ../frontend
$ docker-compose up -d

ネットワーク確認

docker network inspectを見てみると同じネットワークに所属していることがわかります

$ docker network inspect 26350ce7ba23
# ※Containers抜粋
"Containers": {
            "34223f932ee2d1e21b78da2168d7ddceca457eef5f33dc943beeff891dc7a276": {
                "Name": "backend_app1_1",
                "EndpointID": "ae124e9bb5d3691c51c60520d3ffbd236be9946d2b1574b8bd06e192eebb2599",
                "MacAddress": "02:42:ac:1e:00:02",
                "IPv4Address": "172.30.0.2/16",
                "IPv6Address": ""
            },
            "73fb6f4969a25640c526938b50d0d95e5b3bcf1eeefe99898669b11db4e66df4": {
                "Name": "frontend_app2_1",
                "EndpointID": "d6996a0ab64d429f081ea3144a38ba6122022348f87951dd3b862e66bcf6a31a",
                "MacAddress": "02:42:ac:1e:00:03",
                "IPv4Address": "172.30.0.3/16",
                "IPv6Address": ""
            }
        },

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5