gpt4 book ai didi

mysql - Docker中MySQL密码的最佳实践

转载 作者:行者123 更新时间:2023-12-02 19:19:06 25 4
gpt4 key购买 nike

我目前正在使用Docker容器和mysql数据库。每个应用程序在其自己的docker容器中都有自己的mysql db。应用程序和数据库共享一个网络,可以通过另一个网络(traefik)访问应用程序本身。这意味着无法从外部访问mysql数据库。为mysql实例设置安全密码有多重要?有最佳实践吗?

更新:现在使用Docker secret

这是我与nextcloud一起使用的示例 docker-compose.yaml :

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

您可以使用以下方法创建 secret 文件:
openssl rand -base64 32 > /opt/docker/secrets/mysql_root_password
openssl rand -base64 32 > /opt/docker/secrets/mysql_user_password

最佳答案

即使您的应用程序位于本地docker网络中,您也应始终力争在MySQL上使用强密码。

您永远不会知道您的应用程序环境将来何时更改,或者什么用户在某个时候可以访问该本地网络。

幸运的是,在Docker swarm和Docker compose的基础上,很容易使用 secret (实际上是简单的文件,其中包含安装在您容器中/ secrets目录中的密码)。

在此处查看示例:https://blog.ruanbekker.com/blog/2017/11/23/use-docker-secrets-with-mysql-on-docker-swarm/

关于mysql - Docker中MySQL密码的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61302378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com