dinghy-http-proxy icon indicating copy to clipboard operation
dinghy-http-proxy copied to clipboard

Swarm mode DNS

Open JonDum opened this issue 6 years ago • 3 comments

Hello, I'm trying out dinghy because regular ol' docker for mac is slow as molasses with large bind mounts.

My stack consists of several docker stack deploy on a docker swarm running just the host machine in single node.

Dinghy comes up fine and all my containers seem much faster! 👍

Where I'm stuck is the dns resolving. With vanilla d4m Traefik was bound to localhost:80 so it could automatically proxy to my containers. That doesn't seem to work anymore since I can't figure out what the dns names are supposed to be.

I've tried: <service_name>, <service_name.docker>, <container_name> <container_name.docker> and I've tried manually connecting to the ip:port that dingy ip reports.

Still nothing connects. Does dinghy not support swarm mode?

JonDum avatar Nov 27 '18 07:11 JonDum

I've never used swarm mode and I'm not familiar with how it configures the containers, so it's likely that Dinghy doesn't fully support it. Currently, the DNS names are based on the com.docker.compose.project and com.docker.compose.service labels that docker-compose sets on containers, or alternatively you can explicitly set a hostname by setting the VIRTUAL_HOST env var on a container. You can see the logic at the bottom of the nginx template: https://github.com/codekitchen/dinghy-http-proxy/blob/master/nginx.tmpl#L238

If swarm sets similar labels on containers, it may be as easy as just extending the logic in that template. But I'm not positive that's all that would be required, for instance I'm not sure if swarm sets up the virtual networks in a similar way to what compose does.

But are you saying you also can't connect to just http://$(dinghy ip)? That should respond with a "Welcome to the Dinghy HTTP Proxy" placeholder page, if it doesn't do that then something more might be going on.

codekitchen avatar Nov 27 '18 16:11 codekitchen

But are you saying you also can't connect to just http://$(dinghy ip)?

Yea that's what's super weird. Nothing is connecting, but I can confirm they are running like normal through docker service log <stack>_<service>

$ docker ps

CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                                                                           NAMES
917babc8c051        flyvana/apiworker:dev               "npm run dev"            10 hours ago        Up 10 hours         3000/tcp, 9229-9230/tcp                                                         api_worker.1.svf5grunqquoz6vvtjzf4fxoa
f85981f98108        flyvana/webpackdevserver:dev        "npm run start"          10 hours ago        Up 10 hours         8080/tcp                                                                        api_webpackdevserver.1.9pokhrejn9us389uz0pz2pjfa
3bc40a061237        arangodb/arangodb:latest            "/entrypoint.sh aran…"   11 hours ago        Up 11 hours         8529/tcp                                                                        api_arango.1.t3z9rj3nlvleio5o6zdrmu6z6
7050c3293cc5        docker:latest                       "docker-entrypoint.s…"   11 hours ago        Up 11 hours                                                                                         prune_images.sgttlkj8zrbxpdm0ave48o915.8mby1burjb5sz4gxfdtl41nzs
3f222e527e60        emilevauge/whoami:latest            "/whoamI"                11 hours ago        Up 11 hours         80/tcp                                                                          proxy_whoami.1.l8u8gzvanyne6pohkvwt4ik5x
78a3bc4068c6        traefik:1.7-alpine                  "/entrypoint.sh --ap…"   11 hours ago        Up 11 hours         80/tcp                                                                          proxy_traefik.1.iyym9ejhreuxx01eporsyjukl
bf5657d1bafa        rabbitmq:3.7.8-management-alpine    "docker-entrypoint.s…"   11 hours ago        Up 11 hours         4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp                             api_rabbitmq.1.4t4rtjahmounak20sklr909g7
aabf8bce9c63        codekitchen/dinghy-http-proxy:2.5   "/app/docker-entrypo…"   11 hours ago        Up 11 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 19322/tcp, 0.0.0.0:19322->19322/udp   dinghy_http_proxy
$ docker container logs dinghy_http_proxy

WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
is being generated in the background.  Once the new dhparam.pem is in place, nginx will be reloaded.
forego     | starting nginx.1 on port 5000
forego     | starting dockergen.1 on port 5100
forego     | starting dnsmasq.1 on port 5300
dockergen.1 | 2018/11/27 06:35:14 Generated '/etc/nginx/conf.d/default.conf' from 1 containers
dockergen.1 | 2018/11/27 06:35:14 Running '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:35:14 [/app/reload-nginx]: currently in 1 networks, found 1 bridge networks, 0 to join, 0 to leave
dockergen.1 | 2018/11/27 06:35:14 Watching docker events
dockergen.1 | 2018/11/27 06:35:14 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dnsmasq.1  | dnsmasq: started, version 2.76 cachesize 150
dnsmasq.1  | dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify
2018/11/27 06:35:46 [notice] 59#59: signal process started
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
dhparam generation complete, reloading nginx
dockergen.1 | 2018/11/27 06:39:27 Received event start for container bf5657d1bafa
dockergen.1 | 2018/11/27 06:39:27 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:39:32 Received event start for container 78a3bc4068c6
dockergen.1 | 2018/11/27 06:39:32 Received event start for container 3f222e527e60
dockergen.1 | 2018/11/27 06:39:32 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:39:32 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:39:45 Received event start for container 7050c3293cc5
dockergen.1 | 2018/11/27 06:39:45 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:39:48 Received event start for container 3bc40a061237
dockergen.1 | 2018/11/27 06:39:48 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:52:29 Received event start for container f85981f98108
dockergen.1 | 2018/11/27 06:52:29 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'
dockergen.1 | 2018/11/27 06:52:30 Received event start for container 917babc8c051
dockergen.1 | 2018/11/27 06:52:30 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification '/app/reload-nginx'

 

ArangoDB is fairly straight forward so maybe that's a good one to look at — arangodb/arangodb:latest starts up the db and binds to :8529 (from its logs api_arango.1.t3z9rj3nlvle@dinghy | INFO using endpoint 'http+tcp://0.0.0.0:8529' for non-encrypted requests)

stacks/api.yml:

    arango:
        image: arangodb/arangodb:latest
        ports:
           - 8529:8529
        networks:
            - backend
        volumes:
            - arango_data:/var/lib/arangodb3
            - /var/run/docker.sock:/var/run/docker.sock

Could it be the attachable networks feature of docker swarm that is preventing them from communicating?

$ docker service inspect api_arango

[
  {
      "ID": "4aug6ld7s68zadmgpm1h6w7r5",
      "Version": {
          "Index": 2191
      },
      "CreatedAt": "2018-11-27T06:39:05.196628789Z",
      "UpdatedAt": "2018-11-27T06:51:44.985922528Z",
      "Spec": {
          "Name": "api_arango",
          "Labels": {
              "com.docker.stack.image": "arangodb/arangodb:latest",
              "com.docker.stack.namespace": "api"
          },
          "TaskTemplate": {
              "ContainerSpec": {
                  "Image": "arangodb/arangodb:latest@sha256:356e09720cc5acc2a81b9be9da8537386a108e68e6c11618531bfc4cea0c2717",
                  "Labels": {
                      "com.docker.stack.namespace": "api"
                  },
                  "Env": [
                      "ARANGO_NO_AUTH=1"
                  ],
                  "Privileges": {
                      "CredentialSpec": null,
                      "SELinuxContext": null
                  },
                  "Mounts": [
                      {
                          "Type": "volume",
                          "Source": "api_arango_data",
                          "Target": "/var/lib/arangodb3",
                          "VolumeOptions": {
                              "Labels": {
                                  "com.docker.stack.namespace": "api"
                              }
                          }
                      },
                      {
                          "Type": "bind",
                          "Source": "/var/run/docker.sock",
                          "Target": "/var/run/docker.sock"
                      }
                  ],
                  "StopGracePeriod": 10000000000,
                  "DNSConfig": {},
                  "Isolation": "default"
              },
              "Resources": {},
              "RestartPolicy": {
                  "Condition": "any",
                  "Delay": 5000000000,
                  "MaxAttempts": 0
              },
              "Placement": {
                  "Platforms": [
                      {
                          "Architecture": "amd64",
                          "OS": "linux"
                      }
                  ]
              },
              "Networks": [
                  {
                      "Target": "zzmt7vbnwjc4g5uacbgwlj5cz",
                      "Aliases": [
                          "arango"
                      ]
                  }
              ],
              "ForceUpdate": 0,
              "Runtime": "container"
          },
          "Mode": {
              "Replicated": {
                  "Replicas": 1
              }
          },
          "UpdateConfig": {
              "Parallelism": 1,
              "FailureAction": "pause",
              "Monitor": 5000000000,
              "MaxFailureRatio": 0,
              "Order": "stop-first"
          },
          "RollbackConfig": {
              "Parallelism": 1,
              "FailureAction": "pause",
              "Monitor": 5000000000,
              "MaxFailureRatio": 0,
              "Order": "stop-first"
          },
          "EndpointSpec": {
              "Mode": "vip",
              "Ports": [
                  {
                      "Protocol": "tcp",
                      "TargetPort": 8529,
                      "PublishedPort": 8529,
                      "PublishMode": "ingress"
                  }
              ]
          }
      },
      "PreviousSpec": {
          "Name": "api_arango",
          "Labels": {
              "com.docker.stack.image": "arangodb/arangodb:latest",
              "com.docker.stack.namespace": "api"
          },
          "TaskTemplate": {
              "ContainerSpec": {
                  "Image": "arangodb/arangodb:latest@sha256:356e09720cc5acc2a81b9be9da8537386a108e68e6c11618531bfc4cea0c2717",
                  "Labels": {
                      "com.docker.stack.namespace": "api"
                  },
                  "Env": [
                      "ARANGO_NO_AUTH=1"
                  ],
                  "Privileges": {
                      "CredentialSpec": null,
                      "SELinuxContext": null
                  },
                  "Mounts": [
                      {
                          "Type": "volume",
                          "Source": "api_arango_data",
                          "Target": "/var/lib/arangodb3",
                          "VolumeOptions": {
                              "Labels": {
                                  "com.docker.stack.namespace": "api"
                              }
                          }
                      },
                      {
                          "Type": "bind",
                          "Source": "/var/run/docker.sock",
                          "Target": "/var/run/docker.sock"
                      }
                  ],
                  "Isolation": "default"
              },
              "Resources": {},
              "Placement": {
                  "Platforms": [
                      {
                          "Architecture": "amd64",
                          "OS": "linux"
                      }
                  ]
              },
              "Networks": [
                  {
                      "Target": "zzmt7vbnwjc4g5uacbgwlj5cz",
                      "Aliases": [
                          "arango"
                      ]
                  }
              ],
              "ForceUpdate": 0,
              "Runtime": "container"
          },
          "Mode": {
              "Replicated": {
                  "Replicas": 1
              }
          },
          "EndpointSpec": {
              "Mode": "vip",
              "Ports": [
                  {
                      "Protocol": "tcp",
                      "TargetPort": 8529,
                      "PublishedPort": 8529,
                      "PublishMode": "ingress"
                  }
              ]
          }
      },
      "Endpoint": {
          "Spec": {
              "Mode": "vip",
              "Ports": [
                  {
                      "Protocol": "tcp",
                      "TargetPort": 8529,
                      "PublishedPort": 8529,
                      "PublishMode": "ingress"
                  }
              ]
          },
          "Ports": [
              {
                  "Protocol": "tcp",
                  "TargetPort": 8529,
                  "PublishedPort": 8529,
                  "PublishMode": "ingress"
              }
          ],
          "VirtualIPs": [
              {
                  "NetworkID": "1s59n2aae073fi46hgarnkj2s",
                  "Addr": "10.255.0.3/16"
              },
              {
                  "NetworkID": "zzmt7vbnwjc4g5uacbgwlj5cz",
                  "Addr": "10.0.1.2/24"
              }
          ]
      }
  }
]

$ docker container inspect api_arango.1.t3z9rj3nlvleio5o6zdrmu6z6

[
    {
        "Id": "3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39",
        "Created": "2018-11-27T06:39:47.944277074Z",
        "Path": "/entrypoint.sh",
        "Args": [
            "arangod"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 5120,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2018-11-27T06:39:48.696824926Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:21b646b10c7ef553ad043860ac5f872be51f3d08b12ddc95cae6ff021a720415",
        "ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39/resolv.conf",
        "HostnamePath": "/mnt/sda1/var/lib/docker/containers/3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39/hostname",
        "HostsPath": "/mnt/sda1/var/lib/docker/containers/3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39/hosts",
        "LogPath": "/mnt/sda1/var/lib/docker/containers/3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39/3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39-json.log",
        "Name": "/api_arango.1.t3z9rj3nlvleio5o6zdrmu6z6",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "shareable",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "default",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "api_arango_data",
                    "Target": "/var/lib/arangodb3",
                    "VolumeOptions": {
                        "Labels": {
                            "com.docker.stack.namespace": "api"
                        }
                    }
                },
                {
                    "Type": "bind",
                    "Source": "/var/run/docker.sock",
                    "Target": "/var/run/docker.sock"
                }
            ],
            "MaskedPaths": [
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/asound",
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/mnt/sda1/var/lib/docker/overlay2/07eddce7f89ae1ef33a9ed15ad7b0ddd4ffab09c10916ef40bcd56fae9f47f20-init/diff:/mnt/sda1/var/lib/docker/overlay2/49b393370fb196488340f807a43097c4103f3fa756aea69deef47dafb00fa5a8/diff:/mnt/sda1/var/lib/docker/overlay2/40b20c3608af262d9c7880c047cf377a88cee5c936c244ffa60f16e8bdd628e7/diff:/mnt/sda1/var/lib/docker/overlay2/6bbccf98c4ad7ee4f8a6027673b2746b8134da9a1dcf2f41189c9cbdeb7eedbc/diff:/mnt/sda1/var/lib/docker/overlay2/63a18802c5ea29758d3890631124a23d01fa5ca4f0e708ad75fa9d50adee1662/diff:/mnt/sda1/var/lib/docker/overlay2/7c1be38b946714c62c93cb69fe46cc51ad08ab0dce003feebbad5b436c501211/diff:/mnt/sda1/var/lib/docker/overlay2/4f7a86e0ab50d6f32f8f21e6d1c846ca9742f95c2cb1909fd4b5389a564adeab/diff:/mnt/sda1/var/lib/docker/overlay2/27d82c9e3250ced495de8dd68972eaf77d6123cc1ab2edeb7f7423bdf3f22ed9/diff",
                "MergedDir": "/mnt/sda1/var/lib/docker/overlay2/07eddce7f89ae1ef33a9ed15ad7b0ddd4ffab09c10916ef40bcd56fae9f47f20/merged",
                "UpperDir": "/mnt/sda1/var/lib/docker/overlay2/07eddce7f89ae1ef33a9ed15ad7b0ddd4ffab09c10916ef40bcd56fae9f47f20/diff",
                "WorkDir": "/mnt/sda1/var/lib/docker/overlay2/07eddce7f89ae1ef33a9ed15ad7b0ddd4ffab09c10916ef40bcd56fae9f47f20/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "volume",
                "Name": "api_arango_data",
                "Source": "/mnt/sda1/var/lib/docker/volumes/api_arango_data/_data",
                "Destination": "/var/lib/arangodb3",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            },
            {
                "Type": "bind",
                "Source": "/var/run/docker.sock",
                "Destination": "/var/run/docker.sock",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Type": "volume",
                "Name": "5cdd0061aae979278b70c00c5c1b24b3d20b6c6fe5cc86a56f64a62457935940",
                "Source": "/mnt/sda1/var/lib/docker/volumes/5cdd0061aae979278b70c00c5c1b24b3d20b6c6fe5cc86a56f64a62457935940/_data",
                "Destination": "/var/lib/arangodb3-apps",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "3bc40a061237",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "8529/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "ARANGO_NO_AUTH=1",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "ARCHITECTURE=amd64",
                "DEB_PACKAGE_VERSION=1",
                "ARANGO_VERSION=3.3.19",
                "ARANGO_URL=https://download.arangodb.com/arangodb33/Debian_9.0",
                "ARANGO_PACKAGE=arangodb3-3.3.19-1_amd64.deb",
                "ARANGO_PACKAGE_URL=https://download.arangodb.com/arangodb33/Debian_9.0/amd64/arangodb3-3.3.19-1_amd64.deb",
                "ARANGO_SIGNATURE_URL=https://download.arangodb.com/arangodb33/Debian_9.0/amd64/arangodb3-3.3.19-1_amd64.deb.asc"
            ],
            "Cmd": [
                "arangod"
            ],
            "ArgsEscaped": true,
            "Image": "arangodb/arangodb:latest@sha256:356e09720cc5acc2a81b9be9da8537386a108e68e6c11618531bfc4cea0c2717",
            "Volumes": {
                "/var/lib/arangodb3": {},
                "/var/lib/arangodb3-apps": {}
            },
            "WorkingDir": "",
            "Entrypoint": [
                "/entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.stack.namespace": "api",
                "com.docker.swarm.node.id": "sgttlkj8zrbxpdm0ave48o915",
                "com.docker.swarm.service.id": "4aug6ld7s68zadmgpm1h6w7r5",
                "com.docker.swarm.service.name": "api_arango",
                "com.docker.swarm.task": "",
                "com.docker.swarm.task.id": "t3z9rj3nlvleio5o6zdrmu6z6",
                "com.docker.swarm.task.name": "api_arango.1.t3z9rj3nlvleio5o6zdrmu6z6"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "935f0f3a90bbf0568f3642632f91c7e1a070edba990923bd9ebf17bc0b4d9b8a",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "8529/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/935f0f3a90bb",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "api_backend": {
                    "IPAMConfig": {
                        "IPv4Address": "10.0.1.3"
                    },
                    "Links": null,
                    "Aliases": [
                        "3bc40a061237"
                    ],
                    "NetworkID": "zzmt7vbnwjc4g5uacbgwlj5cz",
                    "EndpointID": "c8e8d676cf423fcd26475605f220374552f4b1663fcc216628dc4d032080a09d",
                    "Gateway": "",
                    "IPAddress": "10.0.1.3",
                    "IPPrefixLen": 24,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:0a:00:01:03",
                    "DriverOpts": null
                },
                "ingress": {
                    "IPAMConfig": {
                        "IPv4Address": "10.255.0.4"
                    },
                    "Links": null,
                    "Aliases": [
                        "3bc40a061237"
                    ],
                    "NetworkID": "1s59n2aae073fi46hgarnkj2s",
                    "EndpointID": "d13d175214402fc782301bdaf7f3938f9d319c041fb33bf7d0aee4d265444969",
                    "Gateway": "",
                    "IPAddress": "10.255.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:0a:ff:00:04",
                    "DriverOpts": null
                }
            }
        }
    }
]

 

And just in case:

$ ifconfig

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
	options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
	inet 127.0.0.1 netmask 0xff000000 
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
	nd6 options=201<PERFORMNUD,DAD>
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
XHC0: flags=0<> mtu 0
XHC1: flags=0<> mtu 0
VHC128: flags=0<> mtu 0
XHC20: flags=0<> mtu 0
en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether ac:de:48:00:11:22 
	inet6 fe80::aede:48ff:fe00:1122%en5 prefixlen 64 scopeid 0x8 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect (100baseTX <full-duplex>)
	status: active
ap1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
	ether f2:18:98:5f:ad:f4 
	media: autoselect
	status: inactive
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether f0:18:98:5f:ad:f4 
	inet6 fe80::1836:aa18:f093:572c%en0 prefixlen 64 secured scopeid 0xa 
	inet 192.168.1.36 netmask 0xffffff00 broadcast 192.168.1.255
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
	ether 02:18:98:5f:ad:f4 
	media: autoselect
	status: inactive
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
	ether e2:1a:0f:6f:1a:ea 
	inet6 fe80::e01a:fff:fe6f:1aea%awdl0 prefixlen 64 scopeid 0xc 
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=63<RXCSUM,TXCSUM,TSO4,TSO6>
	ether 66:00:b4:a8:c4:01 
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x2
	member: en1 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 15 priority 0 path cost 0
	member: en2 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 14 priority 0 path cost 0
	member: en3 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 16 priority 0 path cost 0
	member: en4 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 17 priority 0 path cost 0
	nd6 options=201<PERFORMNUD,DAD>
	media: <unknown type>
	status: inactive
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 66:00:b4:a8:c4:00 
	media: autoselect <full-duplex>
	status: inactive
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 66:00:b4:a8:c4:01 
	media: autoselect <full-duplex>
	status: inactive
en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 66:00:b4:a8:c4:05 
	media: autoselect <full-duplex>
	status: inactive
en4: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	options=60<TSO4,TSO6>
	ether 66:00:b4:a8:c4:04 
	media: autoselect <full-duplex>
	status: inactive
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
	inet6 fe80::d0ee:7d59:b1c2:f3e7%utun0 prefixlen 64 scopeid 0x12 
	nd6 options=201<PERFORMNUD,DAD>
vboxnet0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	ether 0a:00:27:00:00:00 
	inet 192.168.99.1 netmask 0xffffff00 broadcast 192.168.99.255

JonDum avatar Nov 27 '18 17:11 JonDum

Inspecting some of the networks now:

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
zzmt7vbnwjc4        api_backend         overlay             swarm
1d8ed08c89c1        bridge              bridge              local
6517a530bf12        docker_gwbridge     bridge              local
79e71a989847        host                host                local
1s59n2aae073        ingress             overlay             swarm
5ec7fc22558e        none                null                local
7gve724r7f8v        proxy               overlay             swarm
vucvx3byr0pz        prune_default       overlay             swarm

All of my swarm containers appear to be under the ingress network. dinghy ip shows up as a "Peer" in this network.

$ docker network inspect ingress

[
    {
        "Name": "ingress",
        "Id": "1s59n2aae073fi46hgarnkj2s",
        "Created": "2018-11-27T06:38:59.378040762Z",
        "Scope": "swarm",
        "Driver": "overlay",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.255.0.0/16",
                    "Gateway": "10.255.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": true,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "3bc40a06123768d9ade1ff9a74847040df8624822452a4bee8721ce946925f39": {
                "Name": "api_arango.1.t3z9rj3nlvleio5o6zdrmu6z6",
                "EndpointID": "d13d175214402fc782301bdaf7f3938f9d319c041fb33bf7d0aee4d265444969",
                "MacAddress": "02:42:0a:ff:00:04",
                "IPv4Address": "10.255.0.4/16",
                "IPv6Address": ""
            },
            "78a3bc4068c690f40497a656f08e1f827e400101441660e2d1495af72db3cd7a": {
                "Name": "proxy_traefik.1.iyym9ejhreuxx01eporsyjukl",
                "EndpointID": "21348455113e6aad8cd23e009131d6a264a77a28d4f3e9027aed6ee3d83dcc86",
                "MacAddress": "02:42:0a:ff:00:0e",
                "IPv4Address": "10.255.0.14/16",
                "IPv6Address": ""
            },
            "917babc8c051c1ce877ddf4db5bed36ecfe418270900095fbfbf38ca751b72d2": {
                "Name": "api_worker.1.svf5grunqquoz6vvtjzf4fxoa",
                "EndpointID": "4c3037997bf7dc5a6a3a46373f7338813347969e45204189484a41f51d106c5f",
                "MacAddress": "02:42:0a:ff:01:4e",
                "IPv4Address": "10.255.1.78/16",
                "IPv6Address": ""
            },
            "bf5657d1bafa1b0262ea5ba69a2431ec0dfd91e1076cab9bb94b52386c532140": {
                "Name": "api_rabbitmq.1.4t4rtjahmounak20sklr909g7",
                "EndpointID": "e9855adfd739400b4de974d9bf35ca73dad5f2d4e1df293cab6963157e3712d0",
                "MacAddress": "02:42:0a:ff:00:06",
                "IPv4Address": "10.255.0.6/16",
                "IPv6Address": ""
            },
            "f85981f9810857ed04491e1513a6b168e2eb2312d278ad6762bc13bb48739fe9": {
                "Name": "api_webpackdevserver.1.9pokhrejn9us389uz0pz2pjfa",
                "EndpointID": "2b08ada7c275f28b8647d9dc0dc5d6d0eba98ec1f285a076689bea01d3711363",
                "MacAddress": "02:42:0a:ff:01:4d",
                "IPv4Address": "10.255.1.77/16",
                "IPv6Address": ""
            },
            "ingress-sbox": {
                "Name": "ingress-endpoint",
                "EndpointID": "7c1de93455c0a1d880c86d14349796ecfab91e6f9781b81ce37748eb676da477",
                "MacAddress": "02:42:0a:ff:00:02",
                "IPv4Address": "10.255.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.driver.overlay.vxlanid_list": "4096"
        },
        "Labels": {},
        "Peers": [
            {
                "Name": "777cbef5a9c0",
                "IP": "192.168.99.100"
            }
        ]
    }
]

 

Whereas dinghy-http-proxy shows up in the bridge network

$ docker network inspect bridge

[
    {
        "Name": "bridge",
        "Id": "1d8ed08c89c17bcd3002f12cc2a814cb38fd3bcfe60e5563a0a5e07489d49540",
        "Created": "2018-11-27T06:34:54.732493365Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "aabf8bce9c6329f5b9e953b88c53bb2d6f4c88855cc1c1c23d575981b893748e": {
                "Name": "dinghy_http_proxy",
                "EndpointID": "046f74d944de660f16dec72ec52d23a37dd2904e7f2b8e28febb916614fad890",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]

Trying all the IPs I find in these, still don't get anything connected 😤

JonDum avatar Nov 27 '18 18:11 JonDum