В этой статье блога мы рассмотрим различные способы подключения контейнера Docker к серверу Google Cloud SQL. Используя эти методы, вы можете установить безопасное и надежное соединение между вашей средой Docker и вашей базой данных Google Cloud SQL. Мы предоставим примеры кода для каждого метода, чтобы помочь вам легко реализовать решение.
Метод 1. Использование прокси-сервера Cloud SQL
Прокси-сервер Cloud SQL позволяет безопасно подключаться к серверу Google Cloud SQL. Вот шаги для его настройки:
-
Установите прокси-сервер Cloud SQL в контейнере Docker:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy chmod +x cloud_sql_proxy -
Запустите прокси Cloud SQL:
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 -
Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать
127.0.0.1:3306в качестве хоста.
Метод 2: использование частного IP
Если ваш контейнер Docker и сервер Google Cloud SQL находятся в одной сети VPC, вы можете использовать метод частного IP. Вот как:
-
Включите частный IP-адрес для вашего экземпляра Cloud SQL.
-
Запустите контейнер Docker в той же сети VPC, что и экземпляр Cloud SQL.
-
Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать частный IP-адрес экземпляра Cloud SQL.
Метод 3. Использование сервисной сети
Сервисная сеть позволяет установить соединение между вашим контейнером Docker и сервером Google Cloud SQL с использованием пиринга VPC. Выполните следующие действия:
-
Включить API сетевых служб.
-
Создайте сеть VPC и подсеть для контейнера Docker.
-
Совместите сеть VPC с сетью VPC, в которой находится ваш экземпляр Cloud SQL.
-
Настройте сетевые параметры контейнера Docker для использования одноранговой сети.
-
Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать частный IP-адрес экземпляра Cloud SQL.
Метод 4. Использование дополнительного контейнера Cloud SQL Proxy
В этом методе вы можете развернуть дополнительный контейнер, на котором работает Cloud SQL Proxy, вместе с контейнером вашего приложения. Вот как:
-
Создайте сеть Docker:
docker network create my-network -
Запустите контейнер Cloud SQL Proxy:
docker run -d --name cloud-sql-proxy --network my-network -v <PATH_TO_CREDENTIALS>:/config -p 127.0.0.1:3306:3306 gcr.io/cloudsql-docker/gce-proxy:1.16 /cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 -credential_file=/config -
Запустите контейнер приложения:
docker run -d --name my-app --network my-network my-app-image -
Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать
cloud-sql-proxy:3306в качестве хоста.
В этой статье мы рассмотрели несколько способов подключения контейнера Docker к серверу Google Cloud SQL. Независимо от того, решите ли вы использовать Cloud SQL Proxy, частный IP-адрес, сервисную сеть или боковой контейнер Cloud SQL Proxy, каждый метод предлагает надежный и безопасный вариант подключения. Следуя предоставленным примерам кода, вы сможете легко реализовать решение, которое лучше всего соответствует вашим требованиям.