Несколько контейнеров MySQL в Docker Compose - прерывистые висящие на соединении от хостаMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Несколько контейнеров MySQL в Docker Compose - прерывистые висящие на соединении от хоста

Сообщение Anonymous »

У меня есть следующий очень простой файл с докером: < /p>

Код: Выделить всё

version: '3.8'

services:
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
command:
- --authentication_policy=mysql_native_password
ports:
- "3307:3306"
other-db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
command:
- --authentication_policy=mysql_native_password
ports:
- "3308:3306"
просто запускает две идентичные базы данных MySQL и выявляет одну на хост на порту 3307, а другую в порту 3308. Я вижу, что оба работают и работают, порты выглядят правильно, вывод моего Docker-PS: < /p>

Код: Выделить всё

CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                         NAMES
cb40137b211e   mysql:8.0   "docker-entrypoint.s…"   12 minutes ago   Up 12 minutes   0.0.0.0:3307->3306/tcp, [::]:3307->3306/tcp   throwaway-db-1
da92a7a412d9   mysql:8.0   "docker-entrypoint.s…"   12 minutes ago   Up 12 minutes   0.0.0.0:3308->3306/tcp, [::]:3308->3306/tcp   throwaway-other-db-1
< /code>
Вывод LSOF -ITCP -STCP: Слушание -N -p | grep -e 3307 -e 3308 
:

Код: Выделить всё

com.docke 51746 ****  146u  IPv6 0xe5664b0e21a1657f      0t0  TCP *:3307 (LISTEN)
com.docke 51746 ****  162u  IPv6 0xcb18455c9581f670      0t0  TCP *:3308 (LISTEN)
< /code>
Я пытаюсь подключиться к ним следующим образом: < /p>
[list]
[*] db: mysql -h localhost -p 3307 - -protocol = tcp -u root -p < /code> < /li>
 worn -db: mysql -h localhost -p 3308 - -protocol romtocol romtocol romtocol -romtocol -romtoc -rom. -p 
[/list]
Однако я обнаружил, что, прерывистое, при запуске этой одной из двух баз данных будет висеть на неопределенном времени в команде CLI выше после ввода пароля. В других случаях это нормально. Так что я могу только предположить, что есть какое-то условие гонки. < /P>
Если я определяю aeplends_on Block между двумя базами данных, добавив это в другие DB: < /p>
depends_on:
- db
< /code>
Это работает просто отлично. Конечно, на практике я не хочу этого делать, поскольку это не имеет смысла (это всего лишь минимальный пример, демонстрирующий проблему, реальные файлы с композитом докеров более сложны). < /P>
Я проверил здоровье контейнера MySQL, все журналы выглядят правильно и здоровы. Я могу подключиться изнутри контейнеров просто отлично. Если я включаю общее ведение журнала, я даже не вижу соединения от хоста, попавшего в контейнер, поэтому я предполагаю, что что -то сломается на уровне сети Docker. MacOS Sequoia 15.5 (на MacBook Pro, M4) < /li>
Docker: 28.1.1-rd < /li>
Docker Compose: 2.36.2 < /li>
< /ul>
Что мне здесь не хватает? Из моего понимания Docker/Docker составлена, моя настройка верна. Мои контейнеры находятся в одной сети Docker, с различными именами услуг (приводящих к отдельным записям DNS), различным IPS. Они разоблачают разные порты хозяину. Почему здесь есть какое -то странное состояние гонки? Как я могу диагностировать дальше?

Подробнее здесь: https://stackoverflow.com/questions/796 ... connection
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «MySql»