Я немного измененную версию контейнера здесь:Как запустить Nginx обратный прокси-контейнер на ECS, используя аргументы
http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/
Чтобы запустить его локально я использую:
$ docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock -t jwilder/nginx-proxy
И запустите мои другие контейнеры, как показано ниже:
$ docker run -e VIRTUAL_HOST=my-domain.local -t -d my-repo/site-name
У меня проблемы с con вернув это в определение задачи в ECS.
определение задач
У меня есть два контейнера:
Nginx-реверс-прокси
- Порт отображения: Хост 80 Контейнер 80
- Essential: истинный
- Команда: /app/docker-entrypoint.sh
статический сайт
- Порт отображения: Хост 5000 Контейнер 5000
- Essential: ложные
- Команда: /some-file.sh
- конв вары: VIRTUAL_HOST static.example.com
У меня есть кластер с одним экземпляром ECS и сервером с одной задачей, определенной выше. Это приводит к циклическому отключению и завершается с ошибкой «STOPPED (основной контейнер в задаче)».
Теперь я предполагаю, что мне нужно настроить тома, но все примеры, которые я могу найти, имеют путь и имя, и я не вижу, как я могу преобразовать этот файл /var/run/docker.sock:/tmp/docker .sock "в любые доступные поля.
Глупый вопрос, но разве это не может быть достигнуто с балансировщиками ELB/ALB AWS? Зачем использовать nginx? – codepushr
AWS взимает * много * за ELB. Так как вам потенциально нужен один для каждого контейнера, который вы запускаете на ECS, он быстро добавляет до сотни долларов в месяц только для ELB, если у вас много мелких услуг. – BjornW