【发布时间】:2021-01-04 19:47:05
【问题描述】:
我正在为以下 docker-compose.yml 文件运行 docker-compose up:
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或mariadb。
-
试试下面的命令,docker-compose down - 如果有 docker-compose.yml docker rm -fv $(docker ps -aq) 这将停止当前目录中的容器 - 所有容器将被删除 sudo lsof -i -P -n | grep 3306- 列出谁在使用端口 kill -9 3306 还可以尝试重新启动 docker 以查看是否可以解决问题。
标签: mysql docker docker-compose port netstat