** Une erreur ** </ font> s'est produite. Je l'ai rencontré lorsque j'ai construit un environnement de développement avec Docker. Assurez-vous d'inclure la déclaration d'erreur et la solution
Il s'avère que le conteneur précédemment créé ne disparaîtra que s'il est supprimé par une commande au lieu d'un projet Je ne connaissais pas la cause de l'erreur dans le numéro de port.
Cela s'est produit lors de la tentative de création d'un environnement pour java spring avec docker. J'ai inclus Flyway comme outil de migration.
$ docker-compose up -d
Starting vi_bank_db_1 ... error
ERROR: for vi_bank_db_1 Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use
$ lsof -i :3306 → Rien ne s'affiche
ERROR: for db Cannot start service db: 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 down
WARNING: Found orphan containers (vi_bank_flyway-repair_1, vi_bank_flyway-info_1, vi_bank_flyway-migrate_1, vi_bank_flyway-clean_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Removing vi_bank_db_1 ... done
Removing network vi_bank_default
$ docker-compose up -d --remove-orphans
Creating network "vi_bank_default" with the default driver
Removing orphan container "vi_bank_flyway-migrate_1"
Removing orphan container "vi_bank_flyway-repair_1"
Removing orphan container "vi_bank_flyway-info_1"
Removing orphan container "vi_bank_flyway-clean_1"
Creating vi_bank_db_1 ... error
ERROR: for vi_bank_db_1 Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use
ERROR: for db Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use
Found orphan containers
Notez qu'il existe déjà des conteneurs dans le même projet.
Il semble que le conteneur que j'ai fabriqué par moi-même avant soit resté.
C'est la première fois que je développe avec Docker, ce sera donc une expérience d'apprentissage.
Cela semble être la raison pour laquelle docker-compose up -d
n'est pas exécuté.
Exécutez la commande en fonction de l'erreur
$ docker-compose up -d --remove-orphans
** [Solution] ** </ font>
docker-compose.yml
version: '3.7'
services:
db:
image: mysql:8.0.20
ports:
- "3307:3306"
ensuite
$ docker-compose up -d
Recreating vi_bank_db_1 ... done
$ docker-compose exec db mysql -u docker -p
Entrée du mot de passe → succès
mysql>
** Erreur rencontrée ** </ font> ERROR: for vi_bank_db_1 Cannot start service db: Ports are not available: listen tcp 0.0.0.0:3306: bind: address already in use
approche
$ lsof -i :3306
#Rien ne s'affiche
$ docker-compose up -d
Recreating vi_bank_db_1 ... done
Mise à jour 201108
La version java de Gradle n'a pas pu être définie.
Utilisation de MySQL avec Docker [option d'exécution du conteneur docker]
Error starting userland proxy: listen tcp0.0.0.0:3306: bind: address already in use