2016-12-24 1 views
1

Я в основном с помощью установки из: https://github.com/wouterds/docker (но не с помощью MySQL)Есть ли способ получить доступ к контейнеру докеров (nginx) через локальный URL-адрес, например http://mydomain.dev?

Следующая моя докер-compose.yml файл:

nginx: 
    image: nginx:1.10.2 
    ports: 
     - 80:80 
    restart: always 
    volumes: 
     - ./nginx/conf:/etc/nginx/conf.d 
     - ~/server/firebase-test/code:/code 
    links: 
     - php 
    depends_on: 
     - php 

php: 
    build: php 
    expose: 
     - 9000 
    restart: always 
    volumes: 
     - ./php/conf/php.ini:/usr/local/etc/php/conf.d/custom.ini 
     - ~/server/firebase-test/code:/code 

Это работает правильно, если я иду в http://localhost

Но я использую эту настройку контейнера, чтобы создать кучу разных сайтов. Иногда мне нужно, чтобы они работали одновременно, поэтому они оба пытаются использовать URL-адрес localhost, что невозможно. Есть ли способ для меня, чтобы вручную их ссылалось на что-то вроде http://websitename.dev или http://[container-name].dev локально? Является ли docker-compose автоматически генерирует какое-то сетевое сопоставление, которое я могу использовать для доступа к контейнеру вместо http://localhost?

Довольно новый для Docker, поэтому я немного потерял и искал в течение последнего часа, но не вызвал многого другого, кроме инструмента под названием «docker-hostmanager», но он не работает с синтаксисом v2.

ответ

0

Я считаю, что вы должны быть в состоянии настроить Nginx, чтобы сделать это с помощью директивы server_name:

server { 
    listen  80; 
    server_name example.org www.example.org; 
    ... 
} 

http://nginx.org/en/docs/http/server_names.html

+0

Но что бы отобразить домен * внутри * Докер. Мне нужно, чтобы он был доступен * снаружи * докеров. Как и в, контейнер докеров выступает в качестве сервера, и моя хост-система имеет доступ к нему через браузер, как и любой другой сайт в мире. –

+0

Я считаю, что контейнер по-прежнему будет доступен из хоста, потому что порт nginx (80) отображается из контейнера в хост в файле docker-compose.yml. –

+0

Возможно, вам также потребуется добавить запись в файл hosts на вашей ОС хоста, которая отображает имя nginx server_name на localhost IP, например. '' '127.0.0.1 example.org''' –