2017-04-15 167 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 
相關問題