我正在尝试将容器中的端口映射到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
答案 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