Какой IP-адрес я должен использовать для общения в Docker?

0

У меня есть контейнер MySql и еще один контейнер докеров с приложением Jython.

Внутри приложения Jython - это строка подключения для подключения к MySql (она работает на узле): mysql_url_string jdbc:mysql://localhost/...

Это не работает с двумя контейнерами докеров (1 Mysql, 2 Jython app). Какой IP-адрес я должен использовать для строки подключения (вместо localhost)?

Благодарю.

  • 0
    Stack Overflow - сайт для вопросов программирования и разработки. Этот вопрос кажется не по теме, потому что он не касается программирования или разработки. Смотрите, какие темы я могу задать здесь, в Справочном центре. Возможно, лучше спросить Super User или Unix & Linux Stack Exchange .
  • 0
    «Какой IP-адрес мне следует использовать для строки подключения (вместо localhost)?» IP машины, где установлен и работает MySQL? ipconfig на машине с Windows или ifconfig на Linux, Unix или Mac.
Показать ещё 8 комментариев
Теги:
docker

1 ответ

0

Вместо использования IP-адреса (поскольку они могут измениться, если вы специально не определяете конфигурацию сети), вы можете просто соединить два контейнера вместе и обратиться к ним по имени контейнера.

version: "3"
services:

  mysql:
    container_name: mysql
    image: somethingsomething/mysql:latest

  jython
    container_name: jython
    image: somethingsomething/jython:latest
    links:
      - mysql
    environment:
      jdbc_url: jdbc:mysql://mysql:3306

Эта связь также может быть выполнена через CLI (см. Https://linuxconfig.org/basic-example-on-how-to-link-docker-containers)

Если вы просто должны использовать IP-адреса, вы можете получить IP-адрес после связывания, проверив файлы /etc/hosts внутри контейнеров.

Изменить примечание:

Существуют альтернативные способы приблизиться к этому без "увязки", но без необходимости более подробной информации о том, как настроены ваши контейнеры, и это трудно обеспечить. т.е. независимо от того, являются ли они автономными контейнерами в сети хоста или мостовой сетью или созданы как докер-служба с наложением или что-то еще! Различные сценарии изменяют способ создания и использования адресации для межконтекстной связи, поэтому средства поиска IP-адреса не будут одинаковыми.

  • 0
    Спасибо .. Итак, вы поставили тег 'links:' для обоих контейнеров? (Mysql и Jython) Как они связаны в этом случае - они действуют как 1 большой контейнер с этими ссылками?
  • 0
    Вам действительно нужно связать его от клиента к серверу, т.е. от jython до mysql, но вы можете связать оба пути для отладки. Докер творит много магии в сфере сетевых технологий. Хороший пример - когда вы развертываете многоконтейнерную докерную службу в кластере роя (на нескольких серверах), она автоматически создает оверлейную сеть, поэтому контейнеры могут общаться, даже если они находятся на разных хостах. В этом случае, хотя связывание в основном дает одному контейнеру информацию, необходимую для подключения к другому, и обновляет / etc / hosts, сопоставляя имя контейнера с его IP-адресом. См. Docs.docker.com/network
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню