IP адрес контейнера неверный
Есть конфигурация docker-compose.yaml
version: '3.1'
services:
nginx-server:
image: nginx:latest
container_name: sasol-nginx-server
ports:
- "0.0.0.0:8081:80"
volumes:
- ./volumes/etc/nginx:/etc/nginx
- ./volumes/html/:/var/www/html
- ./volumes/logs/:/var/log/nginx
restart: unless-stopped
links:
- php-fpm
- mysql-server
networks:.
- alexus-network
php-fpm:
container_name: sasol-php-fpm
build: ./build/php7.4
volumes:
- ./volumes/html/:/var/www/html
restart: unless-stopped
networks:.
- alexus-network
mysql-server:
container_name: sasol-mysql-server
build: ./build/mysql5.6.51
ports:
- "3306:3306"
volumes:
- ./volumes/mysql-data:/var/lib/mysql
- ./volumes/etc/mysql:/etc/mysql/mysql.conf.d
networks:
- alexus-network
networks:
alexus-network:
driver: bridge
3 контейнера sasol-nginx-server, sasol-php-fpm и sasol-mysql-server после запуска контейнеры получают следующие IP адреса
- sasol-nginx-server - 172.17.0.3 (виден извне как www.example.com:8081)
- sasol-php-fpm - 172.17.0.2
- sasol-mysql-server - 172.17.0.4
Все работало прекрасно.
В контейнере sasol-php-fpm был запущен cron task который делал http запрос к сайту www.example.com:8081/script.php (то есть к контейнеру sasol-nginx-server - 172.17.0.3) адрес клиента вызвавшего script.php определялся как 172.17.0.1 хотя по идее ожидался 172.17.0.2. Это был первый звоночек. Через некоторое время sasol-mysql-server стал определять подключаемых к нему клиентов как пришедших с 172.17.0.1, хотя подключения идут из контейнера sasol-php-fpm - 172.17.0.2. То есть клиент [sasol-php-fpm - 172.17.0.2] пытается подключиться к [sasol-mysql-server - 172.17.0.4]. А mysql его отвергает считая что подключение идет с 172.17.0.1
ip адреса я проверял bash скриптом запущенным с хоста
a=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sasol-mysql-server)
echo sasol-mysql-server $a
a=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sasol-php-fpm)
echo sasol-php-fpm $a
a=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sasol-nginx-server)
echo sasol-nginx-server $a
Укажите хотя бы направление куда копать
Ответы (1 шт):
Надо жёстко прописать адреса. А не кто как определится и потом будет конфликтовать с не своими данными от прошлой работы.