Зашифрованы ли дампы sql в докер-контейнер `docker-entrypoint-initdb.d`?

0

Я сбрасываю базу данных в дамп sql:

docker exec mysql sh -c 'exec mysqldump --all-databases -uroot -ppassword' > all-databases.sql

Затем я использую Dockerfile для создания образа mysql и запускаю его как контейнер:

FROM mysql:5.6.41

# needed for intialization
ENV MYSQL_ROOT_PASSWORD=whateverPassword

ADD all-databases.sql /docker-entrypoint-initdb.d/

EXPOSE 3306

Когда я запускаю контейнер, если я выполняю операцию в контейнере, могу ли я получить доступ к файлу all-databases.sql и посмотреть содержимое моей базы данных в виде открытого текста в изображении докеров?

В настоящее время, если я заглядываю в /docker-entrypoint-initdb.d/ он говорит all-databases.sql, но я не знаю, где этот файл хранится/если он зашифрован.

  • 0
    Вы проверили содержимое файла /docker-entrypoint-initdb.d/all-databases.sql
Теги:
docker

1 ответ

2
Лучший ответ

Если вы выполняете docker exec в контейнере, файл будет незашифрованным. (Это просто текстовый файл, и вы можете посмотреть на него more на большинстве баз изображений).

Однако, если вы можете вообще запускать любую команду Docker, тогда обычно тривиально, чтобы получить неограниченный доступ root к системе. (Рассмотрите возможность использования docker run -v/etc: /host-etc чтобы добавить себя в /etc/sudoers или разрешить вход для root без пароля.)

Также помните, что любой, у кого есть изображение, может docker run его и посмотреть там файл, если это имеет значение для вашей безопасности. Если вы все равно ищете один файл с корневым доступом в системе, вы можете найти его без особых усилий в /var/lib/docker. Они также могут легко запускать docker history чтобы увидеть пароль root базы данных, который вы установили.

Ещё вопросы

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