Docker 错误绑定:端口未使用时地址已被使用

Docker Error bind: address already in use when port is not in use

我正在 运行宁 docker-compose up 以下 docker-compose.yml 文件:

version: '3.7'
services:
  mysql_db_container:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
    ports:
      - "3306:3306"
    volumes:
      - mysql_db_data_container:/var/lib/mysql
  adminer_container:
    image: adminer:latest
    environment:
      ADMINER_DEFAULT_SERVER: mysql_db_container
    ports:
      - "8080:8080"

volumes:
  mysql_db_data_container:

我收到以下错误:

ERROR: for mysql_db_container  Cannot start service mysql_db_container: Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use
ERROR: Encountered errors while bringing up the project.

我试过以下方法:

docker-compose stop && docker-compose down

然后

docker ps -a

结果:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

我运行:

netstat | grep :3306

它什么也没返回。

我认为问题可能与 docker-compose 文件有关,但我不确定。非常感谢任何关于如何释放端口以便容器 运行 的想法。

原因: MySQL 在计算机上已经 运行。

解决方法: 在 mac 上: 系统偏好设置 > MySQL > 停止 MySQL 服务器