【问题标题】:Error creating database while running container with docker compose使用 docker compose 运行容器时创建数据库时出错
【发布时间】:2021-05-13 15:44:56
【问题描述】:

我正在尝试使用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

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

【问题讨论】:

  • listen tcp4 0.0.0.0:3306: bind: address already in use:确保您没有在此端口上运行其他服务或应用程序。

标签: mysql docker docker-compose microservices


【解决方案1】:

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

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

如果您不想停止使用该端口的数据库/服务,您可以随时通过更新 docker-compose 配置文件来更改它绑定到的主机端口:

- "3307:3306"

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

【讨论】:

  • 太棒了。当我更改主机端口时它起作用了。但是我在运行我的微服务时仍然遇到问题,我也可以向您展示一下吗?
  • 当然,最好创建一个新问题,除非它是类似的错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 2022-11-03
  • 2021-06-13
相关资源
最近更新 更多