Случайно выставить порт? - PullRequest
1 голос
/ 23 июня 2019

Я новичок в docker и mysql, и я использую приведенную ниже команду для запуска mysql контейнера

docker container run --publish 3306:3306 --name mysqlDB -d --env MYSQL_RANDOM_ROOT_PASSWORD=yes mysql

Теперь он запущен успешно и для получения сгенерированногопароль, я запускаю команду ниже

docker container logs [containerID]

В журналах я могу найти свой GENERATED ROOT PASSWORD, но, пытаясь прочитать журналы, я заметил журнал ниже

[Система] [MY-011323] [Сервер] X Плагин готов к подключению.Сокет: '/var/run/mysqld/mysqlx.sock' bind-address: '::' порт: 33060

Могу ли я узнать, что это значит?Есть ли случайно, что я открыл порт 33060?И как мне это проверить?

Ответы [ 2 ]

1 голос
/ 23 июня 2019

Похоже, что это плагин MySQL, который добавляет в MySQL API, ориентированные на документы. Здесь вы можете найти больше информации: https://www.percona.com/blog/2019/01/07/understanding-mysql-x-all-flavors/

Этот номер порта не связан с вашими привязками, это просто номер порта по умолчанию для этого плагина.

Кроме того, этот номер порта не выставлен , поэтому бояться нечего, поверхность атаки все та же.

И если вы хотите отключить эту вещь, вот инструкции: https://dev.mysql.com/doc/refman/8.0/en/x-plugin-disabling.html (вариант командной строки, вероятно, ваш лучший выбор, учитывая среду докера).

Чтобы убедиться, что порт не открыт, вы можете запустить контейнер и выполнить docker ps, вы увидите что-то вроде этого:

$ docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                            NAMES
43dd96119ded        lb_geo-api               "/bin/sh -c 'exec sh…"   6 months ago        Up 7 days           80/tcp, 0.0.0.0:4203->8080/tcp                   lb_geo-api_1_a86ebad528fc

Последний столбец - «PORTS» - это список портов и их привязок на вашем хосте:

  • 80/tcp - порт 80 открыт изнутри контейнера, но не сопоставлен с портом хоста, поэтому никто снаружи не может подключиться к нему
  • 0.0.0.0:4203->8080/tcp - порт 8080 открыт и сопоставлен с портом 4203 на всех сетевых адаптерах, и его можно подключить извне

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

0 голосов
/ 23 июня 2019

Вы опубликовали свой порт. Это --publish 3306:3306 фактически публикует ваш порт контейнера на порт хоста, и теперь ваш порт хоста 3306 занят mysql. Если вы не хотите этого, вы можете просто удалить --published 3306:3306, и порт контейнера не будет привязан к порту хоста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...