【发布时间】:2019-09-19 15:06:42
【问题描述】:
我正在使用 docker@19.03.2 build 6a30dfc) 和 docker-compose@1.19.0, build 9e633ef。
给定一个 docker-compose.yml(过去很长一段时间都可以正常工作,并且自 2019 年 4 月以来一直没有改变)文件,它只启动了一个 mariadb 容器,并且应该向主机公开 mysql 端口:
pe-db:
image: mariadb:10.3
ports:
- 3306:3306
environment:
MYSQL_DATABASE: dev_db
MYSQL_PASSWORD: password
MYSQL_USER: dev
MYSQL_ROOT_PASSWORD: root_password
在运行时:
docker-compose up
我收到错误消息:
Recreating fcac8d931b6a_ratepipeline_pe-db_1 ... error
ERROR: for fcac8d931b6a_ratepipeline_pe-db_1 Cannot start service pe-db: driver failed programming external connectivity on endpoint ratepipeline_pe-db_1 (6e649313e4cccd484d0672183cd24daf21c5e8ad3dc1e01fda57d0c942194b6d): Bind for 0.0.0.0:3306 failed: port is already allocated
ERROR: for pe-db Cannot start service pe-db: driver failed programming external connectivity on endpoint ratepipeline_pe-db_1 (6e649313e4cccd484d0672183cd24daf21c5e8ad3dc1e01fda57d0c942194b6d): Bind for 0.0.0.0:3306 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
当检查端口 3306 上运行的内容时:
sudo netstat -nlp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 3042/docker-proxy
我看到了 docker-proxy。本地没有运行其他 mysql 数据库。我可以通过以下方式杀死docker-proxy:
sudo killall docker-proxy
sudo netstat -nlp | grep 3306
然后我看到端口3306 上没有任何运行。然而docker-compose up 将再次遇到相同的错误,声称端口已在使用中,即使netstat 将显示该端口上没有用户。
我还尝试通过
重新启动 docker 守护进程 sudo service docker restart
并重新启动我的系统。问题依然存在。
我该如何解决这个问题?
【问题讨论】:
标签: docker ubuntu docker-compose