Я пытаюсь подключить приложение (Docker-контейнер) к базе данных Google Cloud SQL с помощью Docker-контейнера cloudql-proxy. Поэтому я создал файл docker-compose со следующим контейнером cloudsql-proxy:
(XXX заменено на мой идентификатор экземпляра sql облака)
version: "3"
volumes:
sqlproxy:
services:
cloudsql-proxy:
container_name: cloudsql-proxy
image: gcr.io/cloudsql-docker/gce-proxy:1.11
command: /cloud_sql_proxy --dir=/cloudsql -instances=XXX=tcp:0.0.0.0:3306 -credential_file=/config/credentials.json
ports:
- "3306:3306"
volumes:
- /usr/share/service-accounts/cloudsql-client.json:/config/credentials.json
- sqlproxy:/cloudsql
- /etc/ssl/certs:/etc/ssl/certs
restart: always
Всякий раз, когда я пытаюсь подключиться к базе данных cloudql mysql из другого контейнера, работающего на той же машине, например, второй контейнер в файле docker-compose, я получаю ошибку
"ОШИБКА 2003 (HY000): Невозможно подключиться к серверу MySQL на 127.0.0.1 (111« Отказ в соединении »)«
Я пытался подключиться к cloudql-прокси с тремя разными подходами, но все равно с той же ошибкой. Все контейнеры (облачный SQL-прокси и тестовый контейнер для подключения) находятся в одном экземпляре Google Compute Engine:
a) mysql-client: mysql --host 127.0.0.1
b) URL-адрес jdbc: jdbc: mysql: //127.0.0.1: 3306 / test
c) jdbc url: jdbc: mysql: // cloudsql-proxy: 3306 / test
В моем брандмауэре gc я открыл порт 3306 для 0.0.0.0/0 для целей тестирования, остановил и запустил экземпляр облака SQL и т. Д., Но ошибка остается. Журналы прокси-контейнера в порядке:
2018/05/02 16:02:03 using credential file for authentication; email=cloudsql-client@xxx.iam.gserviceaccount.com
2018/05/02 16:02:03 Listening on 0.0.0.0:3306 for x:x:x
2018/05/02 16:02:03 Ready for new connections
Что-то не так с моим подходом или я что-то упустил? Может ли это быть проблемой докера? Я могу пропинговать прокси-контейнер из других контейнеров.