Я обнаружил странное поведение Ma c в отношении Docker контейнеров, которые я создаю для MariaDB. Проблемы возникают каждый раз, когда я создаю контейнер MariaDB с помощью следующей команды:
docker run --rm --name db1 --publish 3307:3306 --mount type=volume,source=dbvol,target=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=test mariadb
Я вижу две странные вещи:
- Во-первых, мне не нужно вводить пользователя или пароль для войдите на сервер, работающий на 3307. Я могу легко войти как root с помощью «mysql -P 3307»!
- Во-вторых, хотя для каждого нового контейнера я создаю, например, db1, db2, db3, et c. Я создаю новый том с docker volume create dbvol[dbvol2,dbvol3,etc.]
, хранилище db, похоже, используется для всех контейнеров. Итак, находясь внутри db2, я могу видеть все таблицы и данные, которые я добавил в db1, и наоборот.
Кто-нибудь может это объяснить? Я смущен. Это ошибка или я чего-то не знаю о томах контейнеров?
PS.
Только что обнаружил, что самодельная версия клиента mysql не учитывает флаг P (порт). Фактически, он открывает мою локальную базу данных хоста. Я думал, что он использует базу данных контейнеров.