Docker Virtualhost вне контейнера

У меня Docker работает правильно, но я хочу изменить имя имени сервера, прямо сейчас это работает с этим способом http://localhost:8080, но я хочу использовать другой URL для того же хоста, это возможно?

Я уже настроил внутри контейнера виртуальный хост и добавил 127.0.0.1 test.local в /etc/hosts все внутри моего контейнера.
Теперь, изнутри моего контейнера, URL(test.local) отвечает хорошо, но когда я пытаюсь извне, работает только с localhost:8080.

Любая помощь


person Rotceh    schedule 19.06.2018    source источник


Ответы (2)


Я думаю, вам нужен док-контейнер, который прослушивает имя, а не использует локальный хост с другим портом.

  1. Добавьте запись DNS для нужного вам имени сервера в /etc/hosts.

    $ нано /etc/hosts

    127.0.0.1 test.local

  2. Отредактируйте composer.yml

версия: '2'

 services: 
 web:
    build: ./docker/
    ports:
        - "80:80"
    volumes:
        - .:/var/www/app
    tty: true
    extra_hosts:
        - "test.local:127.0.0.1"
    hostname: test
    domainname: local
  1. Добавьте имя сервера в DockerFile:

    ЗАПУСК printf 127.0.0.1 api.local ›› /etc/hosts

  2. Настройте виртуальный хост в DockerFile

  3. Соберите контейнер:

    $ docker-compose up -d

  4. Убедитесь, что имя хоста было применено к контейнеру:

$ docker exec -it test_local_web_1 имя хоста

И он должен вернуться:

$ test.local

  1. Проверить, что сервер работает и прослушивает имя сервера:

$ curl -get http://test.local

person Angel Martin    schedule 22.06.2018

Главный вопрос, который нужно задать в вашем случае:

Локальная разработка Docker с виртуальными хостами

Прочтите о --network=host или в Docker-Compose network_mode: "host".

Пожалуйста, проверьте:

https://docs.docker.com/v17.09/engine/userguide/networking/default_network/configure-dns/ и

Несколько виртуальных хостов в одном и том же док-контейнере

person Community    schedule 19.06.2018