estoy tratando de correr
/usr/bin/docker run --rm -v /var/data/redis:/data -v /var/data/conf/redis.conf:/usr/local/etc/redis/redis.conf --name redis -p 6379:6379 redis:5.0.3-alpine3.9pero obtengo:
/usr/bin/docker: Error response from daemon: driver failed programming external connectivity on endpoint redis (f16f19b7727a710fb6c96be566dac66ce26282982960d97faa28861c24fcf2fb): Bind for 0.0.0.0:6379 failed: port is already allocated. Cuando trato de verificar los puertos utilizados con netstat , obtengo:
[root@artik ~]# netstat -nlpute | grep 6379 tcp6 0 0 :::6379 :::* LISTEN 0 14384 2471/docker-proxyNo tengo contenedores docker ejecutándose en este momento.
No entiendo este problema, ¿qué debo hacer?
[root@artik ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESPasos que tuve que seguir para que todo funcionara:
sudo service docker stop sudo rm /var/lib/docker/network/files/local-kv.db sudo service docker start docker system pruneY luego inténtalo de nuevo.
De su salida de netstat , está claro que hay un proceso que contiene el puerto 6379
[root@artik ~]# netstat -nlpute | grep 6379 tcp6 0 0 :::6379 :::* LISTEN 0 14384 2471/docker-proxy Los procesos docker-proxy se crean cuando realiza el reenvío de puertos en docker run lo cual es cierto en su caso -p 6379:6379 .
Para obtener más información sobre docker-proxy, consulte esto .
Sospecho que anteriormente ejecutó un contenedor redis que usaba el puerto 6379 , pero ese contenedor no se eliminó correctamente, lo que mantuvo el proceso docker-proxy ejecución y, por lo tanto, ya tiene port is already allocated .
Espero que esto ayude.
Como sugirió DannyMoshe para cualquier otra persona.
Prueba esto antes de que estropees toda tu configuración:
sudo service docker stop sudo service docker start