在docker-compose文件中映射端口不起作用。网络无法访问

时间:2018-09-21 02:01:13

标签: docker docker-compose

我正在尝试将容器中的端口映射到the docs之后的主机上的端口,但是它似乎不起作用。

运行docker-compose -f development.yml up --force-recreate之后,我没有任何错误。但是,如果我尝试使用frontend来访问localhost:8081服务,则网络将无法访问。

我使用docker inspect来查看IP,并尝试ping通该IP,但还是一无所获。

这是我正在使用的docker-compose文件。而且我做错了什么?

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

1 个答案:

答案 0 :(得分:1)

您正在使用docker工具箱。 Docker工具箱使用docker计算机。在带有docker工具箱的Windows中,您在具有自己IP的虚拟箱下运行,因此localhost不是您的容器所在的位置。您需要进入192.168.99.100:8081来找到您的前端。

根据docker计算机(https://docs.docker.com/machine/get-started/#run-containers-and-experiment-with-machine-commands)上的文档:

$ docker-machine ip default
 192.168.99.100