[DOCKER] Erreur dans Flask OSError: [Errno 98] Adresse déjà utilisée

phénomène

Lors de la création d'une application Flask, j'ai eu l'erreur de titre lorsque j'ai modifié le module plusieurs fois avec le serveur en cours d'exécution.

Message d'erreur

OSError: [Errno 98] Address already in use

Le message reste, mais il semble que "je ne peux pas utiliser l'adresse que j'essaie d'utiliser maintenant parce que je l'utilise déjà ailleurs". Dans un tel cas, recherchez le message d'erreur en supposant que le port est plein.

À la suite de la recherche, les articles suivants ont été consultés. https://qiita.com/ringCurrent/items/2413c795372baa7b479d

Les numéros d'erreur sont différents entre «48» et «98», mais c'est probablement une différence environnementale, donc je vais mettre en œuvre la solution sans m'en soucier.

  1. Installez la commande "lsof" Il semble que la commande lsof soit utilisée pour vérifier le port utilisé, mais elle ne semble pas être dans l'environnement docker que vous utilisez.
(base) root@e8cf64ce12e9:/home/continuumio# lsof -i :5000
bash: lsof: command not found

Installez rapidement. (Utilisez apt car le système d'exploitation est ubuntu)

(base) root@e8cf64ce12e9:/home/continuumio# apt install lsof
Reading package lists... Done
  1. Recherchez les ports en double Vérifiez les ports qui sont utilisés plusieurs fois. Vérifiez le code car le port cible est spécifié lors du démarrage de Flask.

main.py


if __name__ == "__main__":
    app.run(host='0.0.0.0', port=5000, debug=True)

Vérifiez le processus utilisant le port 5000 avec la commande lsof (Notez que si vous ne limitez pas la cible avec l'option -i, une grande quantité sera extraite)

(base) root@e8cf64ce12e9:/home/continuumio# lsof -i :5000
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  881 root    4u  IPv4 237229      0t0  TCP *:5000 (LISTEN)
python  901 root    4u  IPv4 237229      0t0  TCP *:5000 (LISTEN)
python  901 root    5u  IPv4 237229      0t0  TCP *:5000 (LISTEN)
  1. Mettez fin aux processus inutiles de la liste extraite.

--kill end commande. Nom bruyant. --- 9 Résiliation forcée -: numéro de port Xxxx

Vérifiez les détails avec la "commande man"

(base) root@e8cf64ce12e9:/home/continuumio# kill -9 901

c'est tout

Recommended Posts

Erreur dans Flask OSError: [Errno 98] Adresse déjà utilisée
Erreur de date de l'adresse déjà utilisée dans Flask
Résoudre l'erreur d'adresse déjà utilisée
-Solution pour l'adresse déjà utilisée
Utilisez <input type = "date"> avec Flask
Si vous obtenez une erreur: ce port est déjà utilisé. Dans Django
Connaissances minimales pour utiliser Form avec Flask
Conseils lorsque les amateurs utilisent Flask dans Visual Studio
Utilisez une page d'erreur personnalisée avec python / tornado
Erreur dans random.shuffle
Erreur dans Pyinstaller
Erreur dans TensorBoard