2017-02-17 56 views
0

據我瞭解docker-compose文件,使用docker-compose up命令加載圖像並啓動容器。相反,使用Dockerfile文件與docker build命令僅創建圖像。我想我在這裏錯過了一些東西,因爲事情並不如我所願。使用nginx-proxy在Docker容器中運行多個開發項目

bitnami/wordpress說明我得到一個安裝運行正常使用docker-compose up d。然後可以通過本地主機訪問:81

version: '2' 
services: 
    mariadb: 
    image: bitnami/mariadb:latest 
    volumes: 
     - /path/to/mariadb-persistence:/bitnami/mariadb 
    wordpress: 
    image: bitnami/wordpress:latest 
    depends_on: 
     - mariadb 
    ports: 
     - '81:80' 
     - '443:443' 
    volumes: 
     - ./wordpress-persistence:/bitnami/wordpress 
     - ./apache-persistence:/bitnami/apache 
     - ./php-persistence:/bitnami/php 

因爲我希望能夠訪問此爲domain.com.dev,我看着落實nginx-proxy。依照指示操作,在那裏,並與Docker nginx-proxy : proxy between containers一些靈感,我想出了以下內容:

version: '2' 
services: 
    nginx-proxy: 
    image: jwilder/nginx-proxy 
    container_name: nginx-proxy 
    restart: always 
    ports: 
     - "88:80" 
    volumes: 
     - "/var/run/docker.sock:/tmp/docker.sock:ro" 

    mariadb: 
    image: bitnami/mariadb:latest 
    volumes: 
     - //c/websites/domain_com/mariadb-persistence:/bitnami/mariadb 
    domain.com.dev: 
    image: bitnami/wordpress:latest 
    depends_on: 
     - mariadb 
    ports: 
     - '81:80' 
    environment: 
     - VIRTUAL_HOST=domain.com.dev 
    volumes: 
     - //c/websites/domain_com/wordpress-persistence:/bitnami/wordpress 
     - //c/websites/domain_com/apache-persistence:/bitnami/apache 
     - //c/websites/domain_com/php-persistence:/bitnami/php 

運行docker-compose up -d這個似乎沒有錯誤來完成。然而,當我在瀏覽器中訪問domain.com.dev時,我得到了一個默認的/頁面索引,這表明我以某種方式在那裏得到了一部分,但並不是全部。看看本地文件夾,它們會被創建,但似乎wordpress-persistence沒有被填充,這可以解釋瀏覽器中的默認視圖。

有關爲什麼這不按預期呈現的任何想法?我錯過了什麼明顯的東西?

回答

0

1)對於第一種方法,您需要「完成」配置。 如果你沒有運行Web服務器(nginx的,阿帕奇等)(端口80) - 只是改變從81港口到80

ports: 
     - '80:80' 
     - '443:443' 

和記錄「127.0.0.1 domain.com.dev」添加到您的hosts文件(在linux中爲/etc/host)。

P.S.您可以從88在第二種方法更改端口80 - 它會在不改變hosts文件

工作,如果你有一個80端口的運行wevserver - 那麼它需要在虛擬主機的配置文件,你代理的指令。下面是一個例子:

server { 
    listen 80 default_server; 
    server_name _; 

    include expires.conf; 

    location/{ 
     proxy_set_header Host    $host; 
     proxy_set_header X-Real-IP   $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_pass http://172.17.0.1:81; 
     proxy_http_version 1.1; 
    } 
} 

2)第二種方法通常與dnsmasq配置中使用。 使用thisthis鏈接可以獲得更詳細的信息和配置示例。

相關問題