Почему Docker открывает 80 порт там, где его быть не должно?

Доброго утра.
Собственно, есть проект с двумя микросервисами: site и users. Мне нужно, чтобы site был доступен по 80 порту, а у users все внешние порты были бы закрыты. Для этого использую следующую конфигурацию:

Dockerfile \ site
FROM php:7.2.19-apache

# тут просто устанавливаю все, НИКАКИХ директив, только RUN

EXPOSE 80
Dockerfile \ users
FROM php:7.2.19-apache

# тут просто устанавливаю все, НИКАКИХ директив, только RUN
docker-compose.yml
version: '3'
services: 
  site:
    build: './site'
    ports: 
      - 80:80
    links:
      - "users"
  users:
    build: './users'
    expose:
      - 8000

Однако проблема в том, что, когда я запускаю `docker-compose up --build", он выдает ошибку "Error starting userland proxy: listen tcp 0.0.0.0:80: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted". При этом в `docker ps` видно, что сервис `users` (!!!) запущен и слушает 80 порт, но почему? Этот порт явно промапан у сервиса site!

Где я ошибся? Как сделать так, чтобы Docker:
- связал 80 порт с моей машины с портом контейнера (80:80)
- оставил в покое users, чтобы к этому сервису можно было бы обратиться только изнутри контейнера site по порту 8000
  • Вопрос задан
  • 372 просмотра
Пригласить эксперта
Ответы на вопрос 1
@SergioMaroni
У вас на хостовой машине никто не сидит уже на 80 порту ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы