Я сейчас играю с docker контейнерами и mysql базами данных. Каждое приложение имеет свой собственный mysql db в своем собственном контейнере docker. Приложение и база данных совместно используют сеть, само приложение доступно через другую сеть (traefik). это означает, что база данных mysql недоступна извне. Насколько важно установить безопасные пароли для экземпляров mysql? Есть ли лучшая практика?
Обновление : Использование сейчас Docker секретов
Вот пример docker -compose.yaml i использовать с nextcloud:
services:
nextcloud-db:
image: mariadb
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=ROW
restart: unless-stopped
volumes:
- /opt/docker/nextcloud/database:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password
MYSQL_PASSWORD_FILE: /run/secrets/mysql_user_password
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_INITDB_SKIP_TZINFO: 1
secrets:
- mysql_root_password
- mysql_user_password
secrets:
mysql_root_password:
file: /opt/docker/secrets/mysql_root_password
mysql_user_password:
file: /opt/docker/secrets/mysql_user_password
Вы можете создать секретные файлы с помощью:
openssl rand -base64 32 > /opt/docker/secrets/mysql_root_password
openssl rand -base64 32 > /opt/docker/secrets/mysql_user_password