Я использую docker@19.03.2 build 6a30dfc) и docker-compose@1.19.0, build 9e633ef.
Учитывая docker-compose.yml
(который работал нормально в течение очень долгого времени и былнеизменный с апреля 2019 г.) файл, который раскручивает только контейнер 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-прокси.Нет другой базы данных mysql, работающей локально.Я могу убить docker-proxy
через:
sudo killall docker-proxy
sudo netstat -nlp | grep 3306
, и тогда я не вижу ничего работающего на порту 3306
.Тем не менее, docker-compose up
снова столкнется с той же ошибкой, утверждая, что порт уже используется, хотя netstat
не покажет пользователя на этом порту.
Я также попытался перезапустить демон docker с помощью
sudo service docker restart
и перезагрузка моей системы.Проблема сохраняется.
Как я могу решить эту проблему?