0

I assume that there is a way to link via one or a combination of the following: links, external_links and networking.

Any ideas? I have come up empty handed so far.

Here is an example snippet of a Docker-compose which is started from within a separate Ubuntu docker

version: '2'
 services:
  web:
   build: .
   depends_on:
    - redis
 redis:
  image: redis

I want to be able to connect to the redis port from the Docker that launched the docker-compose.

I do not want to bind the ports on the host as it means I won't be able to start multiple docker-compose from the same model.

-- context -- I am attempting to run a docker-compose from within a Jenkins maven build Docker so that I can run tests. But I cannot for the life of me get the original Docker to access exposed ports on the docker-compose

drewboswell
  • 150
  • 6

1 Answers1

0

Reference the machines by hostname, v2 automatically connects the nodes by hostname on a private network by default. You'll be able to ping "web" and "redis" from within each container. If you want to access the machines from your host, include a "ports" definition for each service in your yml.

The v1 links were removed from the v2 compose syntax since they are now implicit. From the docker compose file documentation

links with environment variables: As documented in the environment variables reference, environment variables created by links have been deprecated for some time. In the new Docker network system, they have been removed. You should either connect directly to the appropriate hostname or set the relevant environment variable yourself...

BMitch
  • 231,797
  • 42
  • 475
  • 450
  • I have updated the description as it was not so obvious what I am doing. From inside an already running Ubuntu docker, I need to start a docker compose which will start from the yaml above. That same Ubuntu docker then needs to access the redis which is inside of the docker-compose's network. I also do NOT want to bind to the entire host, I want to bridge a network connection between the two networks. – drewboswell Jun 11 '16 at 13:00
  • I haven't done the docker inside of docker yet, but have changed the $DOCKER_HOST to access a remote docker host before, which is the same as passing `-H http://host_ip:2375` to the docker commands. That would let you compose your test machine on an isolated network on the same host as the other docker machines. – BMitch Jun 11 '16 at 15:28