运行 容器与 docker 组合时创建数据库时出错

Error creating database while running container with docker compose

我正在尝试使用 docker-compose 创建一个容器,所以我 运行 docker-compose up 在以下撰写文件上:

services:
  mysql:
    image: mysql:5.7
    ports:
        - "3306:3306"
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_USER: admin 
        MYSQL_PASSWORD: joesam007#
        MYSQL_DATABASE: Woodcore-test

拉取并构建镜像后,在尝试创建数据库时,错误响应显示如下:

Creating microservice-task_mysql_1 ... 
Creating microservice-task_mysql_1 ... error

ERROR: for microservice-task_mysql_1  Cannot start service mysql: driver failed programming external connectivity on endpoint microservice-task_mysql_1 (3f2a9ad024c6e586a9c7f089a388cecf7decbf7870106b5b34e5a21e88b415a3): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use

我想知道如何处理这个问题并成功创建数据库。请帮忙,谢谢。

听起来您是 运行 主机端口 3306 上的现有 MySQL 数据库。 您可以通过以下命令确认:

Windows: netstat -a | findstr :3306
Linux: netstat -a | grep :3306

如果您不想阻止 Database/Service 使用该端口,您可以随时更改它绑定的主机端口,方法是将您的 docker-compose 配置文件更新为:

- "3307:3306"

这将允许您从主机连接到端口 3307 上的容器数据库。