今天启动redis突然出现连接端口有问题,错误如下:
truedei@truedei:~$ truedei@truedei:~$ sudo docker start redis Error response from daemon: driver failed programming external connectivity on endpoint redis (87977922525bd67cb6e39c26b2f0229081ff428693991d923c595752a733d41b): Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use Error: failed to start containers: redis truedei@truedei:~$
就查了下端口,果然有在使用的:
truedei@truedei:~$ netstat -ntpl |grep 6379 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN - truedei@truedei:~$
查一下是谁在占用,让我很是惊讶,居然是他自己,端口被占用了,而且还没启动
truedei@truedei:~$ ps -aux |grep 6379 redis 1397 0.0 0.0 42608 2292 ? Ssl 07:30 0:00 /usr/bin/redis-server 127.0.0.1:6379 truedei 5096 0.0 0.0 14536 976 pts/4 S+ 07:33 0:00 grep 6379 truedei@truedei:~$ truedei@truedei:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES truedei@truedei:~$ truedei@truedei:~$
先结束掉在说,奇怪的是,杀都杀不掉
truedei@truedei:~$ sudo kill -9 1397 truedei@truedei:~$ ps -aux |grep 6379 redis 8263 0.0 0.0 42608 2164 ? Ssl 07:35 0:00 /usr/bin/redis-server 127.0.0.1:6379 truedei 8291 0.0 0.0 14536 984 pts/4 S+ 07:35 0:00 grep 6379 truedei@truedei:~$
仔细看了一下这个redis并不是docker中安装的redis,而是在本机的:
/usr/bin/redis-server
那就停止掉本机的,果然可以了:
truedei@truedei:~$ /etc/init.d/redis-server stop [ ok ] Stopping redis-server (via systemctl): redis-server.service. truedei@truedei:~$ truedei@truedei:~$ ps -aux |grep 6379 truedei 10583 0.0 0.0 14536 948 pts/4 S+ 07:37 0:00 grep 6379 truedei@truedei:~$ truedei@truedei:~$
然后再启动:
truedei@truedei:~$ truedei@truedei:~$ sudo docker start redis redis truedei@truedei:~$ truedei@truedei:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 85cb7d83a2ff redis "docker-entrypoint.s…" 22 hours ago Up 5 seconds 0.0.0.0:6379->6379/tcp redis truedei@truedei:~$ truedei@truedei:~$
总结:
出现这种情况的大多数原因都是自己的本机安装了redis,而docker中安装的redis与物理机绑定的端口号是相同的,所以就造成了这个原因。
解决方案有很多种:
1、直接卸载物理机的redis
2、不让开机启动
3、修改docker映射的端口号
4、…等
如果对你有帮助,可以分享给你身边的朋友。或者给俺点个大大的赞和大大的评论,点赞和评论就是给我最大的支持,感谢。
水平有限,难免会有疏漏或者书写不合理的地方,欢迎交流讨论。