BugHunterUK
BugHunterUK

Reputation: 8968

Mapping ports in docker-compose file doesn't work. Network unreachable

I'm trying to map a port from my container, to a port on the host following the docs but it doesn't appear to be working.

After I run docker-compose -f development.yml up --force-recreate I get no errors. But if I try to reach the frontend service using localhost:8081 the network is unreachable.

I used docker inspect to view the IP and tried to ping that and still nothing.

Here is the docker-compose file I am using. And I doing anything wrong?

development.yml

version: '3'
services:
  frontend:
    image: nginx:latest
    ports:
      - "8081:80"
    volumes:
      - ./frontend/public:/var/www/html
  api:
    image: richarvey/nginx-php-fpm:latest
    ports:
      - "8080:80"
    restart: always
    volumes:
      - ./api:/var/www/html
    environment:
      APPLICATION_ENV: development
      ERRORS: 1
      REMOVE_FILES: 0
    links:
      - db
      - mq
  db:
    image: mariadb
    restart: always
    volumes:
      - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: dEvE10pMeNtMoDeBr0
  mq:
    image: rabbitmq:latest
    restart: always
    environment:
      RABBITMQ_DEFAULT_USER: developer
      RABBITMQ_DEFAULT_PASS: dEvE10pMeNtMoDeBr0

Upvotes: 0

Views: 1479

Answers (1)

Moreno
Moreno

Reputation: 546

You are using docker toolbox. Docker toolbox uses docker machine. In Windows with docker toolbox, you are running under a virtualbox with its own IP, so localhost is not where your containers live. You will need to go 192.168.99.100:8081 to find your frontend.

As per the documentation on docker machine(https://docs.docker.com/machine/get-started/#run-containers-and-experiment-with-machine-commands):

$ docker-machine ip default
 192.168.99.100

Upvotes: 3

Related Questions