Подключение Docker-контейнера к Google Cloud SQL Server: несколько методов, объясненных примерами кода

В этой статье блога мы рассмотрим различные способы подключения контейнера Docker к серверу Google Cloud SQL. Используя эти методы, вы можете установить безопасное и надежное соединение между вашей средой Docker и вашей базой данных Google Cloud SQL. Мы предоставим примеры кода для каждого метода, чтобы помочь вам легко реализовать решение.

Метод 1. Использование прокси-сервера Cloud SQL
Прокси-сервер Cloud SQL позволяет безопасно подключаться к серверу Google Cloud SQL. Вот шаги для его настройки:

  1. Установите прокси-сервер Cloud SQL в контейнере Docker:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    chmod +x cloud_sql_proxy
  2. Запустите прокси Cloud SQL:

    ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
  3. Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать 127.0.0.1:3306в качестве хоста.

Метод 2: использование частного IP
Если ваш контейнер Docker и сервер Google Cloud SQL находятся в одной сети VPC, вы можете использовать метод частного IP. Вот как:

  1. Включите частный IP-адрес для вашего экземпляра Cloud SQL.

  2. Запустите контейнер Docker в той же сети VPC, что и экземпляр Cloud SQL.

  3. Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать частный IP-адрес экземпляра Cloud SQL.

Метод 3. Использование сервисной сети
Сервисная сеть позволяет установить соединение между вашим контейнером Docker и сервером Google Cloud SQL с использованием пиринга VPC. Выполните следующие действия:

  1. Включить API сетевых служб.

  2. Создайте сеть VPC и подсеть для контейнера Docker.

  3. Совместите сеть VPC с сетью VPC, в которой находится ваш экземпляр Cloud SQL.

  4. Настройте сетевые параметры контейнера Docker для использования одноранговой сети.

  5. Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать частный IP-адрес экземпляра Cloud SQL.

Метод 4. Использование дополнительного контейнера Cloud SQL Proxy
В этом методе вы можете развернуть дополнительный контейнер, на котором работает Cloud SQL Proxy, вместе с контейнером вашего приложения. Вот как:

  1. Создайте сеть Docker:

    docker network create my-network
  2. Запустите контейнер 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
  3. Запустите контейнер приложения:

    docker run -d --name my-app --network my-network my-app-image
  4. Обновите конфигурацию подключения к базе данных вашего приложения, чтобы использовать cloud-sql-proxy:3306в качестве хоста.

В этой статье мы рассмотрели несколько способов подключения контейнера Docker к серверу Google Cloud SQL. Независимо от того, решите ли вы использовать Cloud SQL Proxy, частный IP-адрес, сервисную сеть или боковой контейнер Cloud SQL Proxy, каждый метод предлагает надежный и безопасный вариант подключения. Следуя предоставленным примерам кода, вы сможете легко реализовать решение, которое лучше всего соответствует вашим требованиям.