[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker

Objectif

** 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

Conclusion

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.

Statut

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.

** [Construction de l'environnement] ** </ font>

$ 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

** Erreur ** </ font>

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

Explication </ font>

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>

  • Changement du numéro de port de 3306 à 3307

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

Résolution des erreurs </ font>

La version java de Gradle n'a pas pu être définie.

image.png

Article référencé (merci toujours)

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

Recommended Posts