[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fNNSG2ElTu5jcUDM2BXY05Kb5Abz3SYPN0lK8MXMmrOg":3},{"code":4,"message":5,"data":6},200,"成功",{"id":7,"createdAt":8,"title":9,"content":10,"summary":11,"image":12,"uid":13,"user":14,"categoryId":21,"category":22,"subCategoryId":24,"subCategory":25,"comments":27,"status":17,"reason":28,"notice":28,"visitCount":29,"commentCount":30,"keywords":31},20,"2024-01-26T10:42:25.116Z","docker bind for port is already allocated","Error response from daemon: driver failed programming external connectivity on endpoint blog_redis (27b921fbdad1c8a40929a3c16ce61c0623939f12e4c6eddaaac0e9d3ce2c298b): Bind for 0.0.0.0:6379 failed: port is already allocated\n![](https://image.xinwei.ltd/11706265565281.png)\n从问题报错来看，端口6379已经被其他程序占用了，所以容器的端口绑定失败了，所以解决问题的办法，那就是找出当前占用6379端口的程序，并且kill掉这个进程，让docker可以正常进行端口映射。\n### 一、查看端口号对应的pid\n```terminal\nlsof -i tcp:6379\n```\n![](https://image.xinwei.ltd/21706265628446.png)\n从截图中看，确实有进程509占用了端口6379，而且是之前启动的redis-server在占用，说明docker之前使用后并没有释放掉这个端口监听。\n### 二、kill进程\n```terminal\nkill -9 507\n```\n执行上述命令后，重新docker restart容器，看是否能解决问题。\n### 三、其他情况\n1.如果是桌面端的docker软件，完全可以重新启动来解决。\n2.如果是使用docker-compose.yml的场景下，可以先关闭掉所有容器，再使用up试试\n```terminal\ndocker-compose down\n```\n3. 如果是容器之间的端口互斥，可以查看所有容器绑定的端口号是否有冲突的\n```terminal\ndocker ps -a\n```\n\n4. 如果是运行laravel环境，可以尝试以下命令\n```terminal\nvalet stop\n```\n","docker在创建或者运行容器时，碰到的端口映射已经被占用的问题：docker bind for port is already allocated.","https://image.xinwei.ltd/11706265565281.png",499668042977349,{"phone":15,"userId":13,"nickName":16,"vipType":17,"avatar":18,"sign":19,"createdAt":20},"13121171998","全栈老韩",1,"https://image.xinwei.ltd/images/IMG_5430.JPG","全栈工程师，擅长iOS App开发、前端（vue、react、nuxt、小程序&Taro）开发、Flutter、React Native、后端（midwayjs、golang、express、koa）开发、docker容器、seo优化等。","2024-01-01T16:14:30.305Z",2,{"id":21,"name":23},"IT技术",36,{"id":24,"name":26,"parentId":21},"Docker",[],"",167,0,"docker,docker bind,docker端口,port,allocated"]