Lorsque j'ai essayé de me connecter à une nouvelle version de DB en mettant à jour le middleware, le port a été pris par le conteneur intégré dans la version précédente et je n'ai pas pu me connecter à mysql.
WARNING: Image for service hoge was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Recreating hoge_mysql ... done
Creating hoge_apache_php74 ...
Creating hoge_apache_php74 ... error
ERROR: for hoge_apache_php74 Cannot start service web74: driver failed programming external connectivity on endpoint hoge_apache_php74 (f9dfceb538d7f688ad0d26269810a7d889): Bind for 0.0.0.0:8081 failed: port is already allocated
ERROR: for web74 Cannot start service web74: driver failed programming external connectivity on endpoint hoge_apache_php74 (f9dfceb538d7f841d4b2a7d26269810a7d889): Bind for 0.0.0.0:8081 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
Bind for 0.0.0.0:8081 failed: port is already allocated
Le message d'erreur indique que le port a déjà été attribué. Vous pouvez changer le port du nouveau conteneur, mais comme il est unifié dans le projet, vous ne touchez pas le Dockerfile J'ai décidé de supprimer le conteneur existant et de le reconstruire avec un état propre.
docker % docker ps -a //Liste des conteneurs, y compris à l'arrêt
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d13d68d47e2c docker_web74 "/sbin/init" About an hour ago Created hoge_apache_php74
bb1e84be87ce docker_mysql "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp hoge_mysql
5a06cd43f761 docker_web "apache2-foreground" 2 hours ago Up 2 hours 0.0.0.0:8081->80/tcp hoge_apache_php
docker % docker-compose top //docker-Confirmation de processus du conteneur d'exploitation créé par compose
hoge_mysql
PID USER TIME COMMAND
----------------------------
2889 999 1:56 mysqld
docker % docker-compose stop //docker-Arrêt des services créés avec compose
Stopping hoge_mysql ... done
docker % docker-compose kill //docker-Arrêt forcé du conteneur créé par compose
docker % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d13d68d47e2c docker_web74 "/sbin/init" About an hour ago Created hoge_apache_php74
bb1e84be87ce docker_mysql "docker-entrypoint.s…" About an hour ago Exited (0) 2 minutes ago hoge_mysql
5a06cd43f761 docker_web "apache2-foreground" 2 hours ago Up 2 hours 0.0.0.0:8081->80/tcp hoge_apache_php
docker % docker-compose down //docker-Arrêtez le conteneur créé par composer et supprimez le conteneur et le réseau
WARNING: Found orphan containers (hoge_apache_php) 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 hoge_apache_php74 ... done
Removing hoge_mysql ... done
Removing network docker_default
ERROR: error while removing network: network docker_default id 46a29f96ef988d2366e0af50d1eb18690bff5db87e7b7cacee8e91d07097702e has active endpoints
docker % docker-compose top //docker-Assurez-vous qu'aucun conteneur en cours d'exécution n'a été créé avec compose
docker % docker-compose ps -a
Name Command State Ports
------------------------------
docker % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a06cd43f761 docker_web "apache2-foreground" 2 hours ago Up 2 hours 0.0.0.0:8081->80/tcp hoge_apache_php
docker % docker ps -aq | xargs docker rm //Supprimer tous les conteneurs
Error response from daemon: You cannot remove a running container //Impossible de tout supprimer s'il existe un conteneur en cours d'exécution 5a06cd43f76166e8dc9c3517c3f6d8aeda7315f134b4d35865d893e85fa8ac79. Stop the container before attempting removal or force remove
docker % docker stop 5a06cd43f761 //Arrêtez le fonctionnement du conteneur
5a06cd43f761
docker % docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a06cd43f761 docker_web "apache2-foreground" 2 hours ago Exited (0) 4 seconds ago hoge_apache_php
docker % docker ps -aq |xargs docker rm ...//Supprimer à nouveau tous les conteneurs
5a06cd43f761
docker % docker ps -a //Assurez-vous que tous les conteneurs ont été supprimés
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker % docker-compose up //Up après avoir été construit
Le conteneur créé par docker-compose a été arrêté par les commandes stop, down et kill, et le conteneur et le réseau ont été supprimés. Et pour les conteneurs qui n'utilisent pas docker-compose Si j'ai vérifié avec docker ps -a et qu'il était en cours d'exécution, je l'ai arrêté avec docker stop {docker ID}. Enfin, docker ps -aq | xargs docker rm a été utilisé pour supprimer tous les conteneurs, les laissant complètement vides. Quand je l'ai essayé en vérifiant l'état du conteneur avec docker ps -a et docker-compose ps -a, le conteneur est resté et le réseau n'était pas déconnecté, j'ai donc exécuté stop and kill de manière assez persistante. Si vous ne pouvez pas exécuter la commande que vous souhaitez effectuer, vous devez vérifier fréquemment l'état du conteneur et exécuter la commande.
https://qiita.com/etaroid/items/88ec3a0e2d80d7cdf87a https://qiita.com/nimusukeroku/items/72bc48a8569a954c7aa2 https://qiita.com/tettsu__/items/302a11fe848dc8fe1f55