Docker mysql image:定期访问被拒绝

我使用默认的mysql映像作为一个多容器应用程序中的一个容器与泊坞合成。 我最近开始看到一个周期性的消息每秒logging一次。 消息是:

[Note] Access denied for user 'root'@'localhost' (using password: NO) 

并在时间戳之前。 docker-compose.yml中的服务configuration如下:

  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 

在构build容器映像时,我有意设置一个root密码,应用程序可以通过我通过环境部分设置的用户名和密码来访问数据库。

在我的应用程序中没有任何东西应该试图以root用户身份访问mysql映像,对于如何找出这些尝试以root身份login而无需密码的来源有任何想法?

如果有帮助,docker-compose.yml文件被设置为版本2.1。 另外两个容器是(1)烧瓶应用程序,以及(2)也是该应用程序的代理服务器的nginx Web服务器。

你的问题是在healthcheck命令中,Docker尝试用root用户执行没有密码的命令:

 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", "-u$MYSQL_USER", "-p$MYSQL_PASSWORD", "ping", "-h", "localhost"] timeout: 5s retries: 10