我正在使用docker-compose完成我的第一步。我用这个内容创建了一个非常基本的docker-compose.yml文件:
version: '2'
services:
webserver:
build: ./docker/webserver
image: runwaytest_web
ports:
- "80:80"
- "443:443"
volumes:
- /myhome/Docker/simple-docker/www:/var/www/html
- /myhome/Docker/simple-docker/symfony3:/var/www/symfony3
links:
- mysql
mysql:
# mysql stuff
我在./docker/webserver
中也有一个非常基本的Dockerfile。服务器正确创建。如果我ssh到容器,apache正在运行,配置文件是正确的。
当我从主机检查我的容器时,IP是172.18.0.3,但是我无法ping它,而symfony3的虚拟主机不起作用(实际上我不能到达基本http - /var/www
)中的-document文件夹。
我正在使用Docker for Mac。
我做错了什么?
答案 0 :(得分:3)
请参阅https://stackoverflow.com/a/24149795/99189了解您无法ping通容器的原因。一般来说,不要期望能够做到这一点。您对容器的唯一网络访问是通过您公开的端口,在这种情况下为80和443。
从在docker容器中运行此功能并使用虚拟主机的角度来看,在向Host:
/ {{1}发出请求时,您需要http客户端发送localhost:80
标头}。
假设您正在使用浏览器进行测试,并且您的虚拟主机是localhost:443
,请尝试以下操作:
user3174311.com
添加到您的127.0.0.1 user3174311.com
这是应该发生的事情:
/etc/hosts
中查找user3174311.com
并将其解析为/etc/hosts
127.0.0.1
Host: user3174311.com
标头的http请求
127.0.0.1:80
标头并确定要使用的正确虚拟主机之后,它取决于您的apache / symphony3配置。如果它不起作用,您必须发布更多详细信息。