我正在使用docker compose在一个多容器应用中将默认的mysql镜像作为一个容器。最近我开始看到一个周期性的消息每秒被记录下来。这个消息是:
[Note] Access denied for user 'root'@'localhost' (using password: NO)
并且在时间戳之前。docker-compose.yml中的服务配置如下:
image: "mysql:5.7.18"
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --port=$MYSQL_CONTAINER_PORT]
expose:
- "${MYSQL_CONTAINER_PORT}"
volumes:
- ${MYSQL_DATA}:/var/lib/mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE
- MYSQL_USER
- MYSQL_PASSWORD
ports:
- "${MYSQL_HOST_PORT}:${MYSQL_CONTAINER_PORT}"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 5s
retries: 10
我在构建容器镜像时有意设置了 root 密码,应用程序可以通过我在环境部分设置的用户名和密码访问数据库。但是,我的应用程序没有任何东西应该尝试使用 root 访问 mysql 镜像,你能想到如何找出这些尝试以 root 身份登录但没有密码的来源吗?如果有帮助的话,docker-compose.yml 文件设置为版本 2.1。另外两个容器分别是一个 Flask 应用程序和一个充当代理服务器的 Nginx Web 服务器。