Я создаю рой и присоединяюсь к узлу, очень хорошо, все отлично работает
docker swarm init --advertise-addr 192.168.99.1
docker swarm join - токен очень длинный генерируемый токен 192.168.99.1:2377
Я создаю 3 службы на менеджере роя
служба Docker создать --replicas 1 - имя nginx nginx - опубликовано = 80, цель = 80
служба Docker создать --replicas 1 - имя php php: опубликовано 7.1-fpm = 9000, цель = 9000
служба Docker создать --replicas 1 - имя postgres postgres: 9,5 опубликовано = 5432, цель = 5432
Все службы загружаются просто отлично, но если я настрою образ php в своем приложении и настрою nginx для прослушивания сокета php fpm, я не смогу найти способ взаимодействия этих трех служб. Даже если я обращаюсь к сервисам с помощью «docker exec -it service-id bash» и пытаюсь пропинговать имена контейнеров или имена хостов (я даже пытался их свернуть).
Что я пытаюсь сказать, так это то, что я не знаю, как настроить nginx для подключения к fpm, поскольку я не знаю, как один контейнер связывается с другим с помощью роя. Использовать docker-compose или docker run просто, как использовать опцию ссылок. Я прочитал всю документацию вокруг, провел часы на проб и ошибок, и я просто не мог обернуть голову вокруг этого. Я читал о сетке маршрутизации, хотел бы опубликовать порты, и это действительно делает для внешнего мира, но я не мог понять, если бы ip был опубликован для внутренних контейнеров, также это не может быть случайный ip как таковой вызовет проблемы с управлением конфигурацией моих приложений, даже конфигурациями nginx.