2017-04-15 128 views
0

我正在尝试使用Docker安装LEMP本地开发环境。以下是我的码头 - composer.yml:如何将虚拟主机映射到docker中的容器?

version: '2' 
services: 
    apache: 
    build: 
     context: ./docker/apache-php7 
     dockerfile: Dockerfile 
    image: foo/apache-php7 
    volumes: 
     - .:/var/www/html 
    ports: 
     - "80:80" 
     - "443:443" 
    networks: 
    - localnet 
    node: 
    build: 
     context: ./docker/node 
     dockerfile: Dockerfile 
    image: foo/node 
    volumes: 
    - .:/var/www/html 
    networks: 
    - localnet 
    mysql: 
    image: mysql:5.7 
    ports: 
    - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: "root" 
     MYSQL_DATABASE: "root" 
     MYSQL_USER: "root" 
     MYSQL_PASSWORD: "root" 
    volumes: 
    - mysqldata:/var/lib/mysql 
    networks: 
    - localnet 
    redis: 
    image: redis:alpine 
    volumes: 
    - redisdata:/data 
    networks: 
    - localnet 
networks: 
    localnet: 
    driver: "bridge" 
volumes: 
    mysqldata: 
    driver: "local" 
    redisdata: 
    driver: "local" 

我可以访问该网站,通过去http://localhost。我试图将其映射到http://foo.dev而不是使用http://localhost来访问该项目,但对于我的生活,我无法弄清楚我如何实现这一目标?我看到的一个例子是this,但它使用了不同的图像,它也使用nginx。

+0

你到目前为止尝试过什么? – johnharris85

+0

@ johnharris85这可能听起来很懒惰,但我甚至不知道从哪里开始。试过官方文档,谷歌,但我想我没有问正确的问题,所以不知道在哪里看。 –

回答

1

我假设foo/apache-php7映像是从基于Ubuntu 16.04的nimmis/apache-php7分支的,所以默认情况下,您的Apache将以同样的方式应答HTTP请求,而与主机名无关。 因此,您唯一需要做的就是在foo.dev DNS区域中设置指向您服务器的A/AAAA记录。

它看起来像区需要一些注意在任何情况下:

% host foo.dev 
foo.dev has address 127.0.53.53 
foo.dev mail is handled by 10 your-dns-needs-immediate-attention.dev. 

地址记录指向本地主机地址,这将无法正常工作,直到你在同一主机上实际上是。你需要一个全球路由的IP地址。

+0

是的,它是从nimmis/apache-php7图像分叉的。我有点困惑,为什么我需要设置A/AAAA记录来为我的电脑设置开发环境。什么我目前做的一个例子是: 1.运行一个流浪汉框 2.设置一个IP地址(如192.168.2.19) 3.在我的/ etc/hosts中添加以下内容: 192.168.2.19 FOO。 dev 现在,当我导航到foo.dev时,它将运行本地虚拟框实例。但是对于Docker,我似乎无法弄清楚。除非我完全错过了它,因为我对Docker没有任何兴趣,我的答案没有帮助吗? –

+0

当你尝试访问http://foo.dev/时,你会得到什么? –

0

我所需要做的只是在相关站点的apache conf文件中添加ServerName指令。在我的情况下,它是000-default.conf。我甚至没有需要更新hosts文件,因为我打标歌德的回答为答案因为这是针对我这样的:

ServerName foo.dev 

然后我更新了我的hosts文件有以下:

127.0.0.1 foo.dev www.foo.dev 
相关问题