wsl上的ubuntu执行docker和docker-compose失败问题排查

起因

中秋放假没有关机,肥来之后wsl上的docker-compose 和docker报错啦。

表现

docker-compose ps报错

root@YK-PC-00036-:~# docker-compose ps
-bash: /mnt/c/Program Files/Docker/Docker/resources/bin/docker-compose: Permission denied
root@YK-PC-00036-:~# docker ps
-bash: /mnt/c/Program Files/Docker/Docker/resources/bin/docker: Permission denied
root@YK-PC-00036-:~# whereis docker

解决方案

使用的是windows docker desktop,将设置项 取消勾选->apply->重新勾选->apply。然后会自动重建目录,然后就ok了。
在这里插入图片描述

解决思路
  • 权限问题
    报错是权限问题,那有没有可能真的是权限问题。我们cd /mnt/c/Program\ Files/Docker/Docker/resources/bin/看了下是有相关的命令的。同时查看修改时间,理论上是没有修改过。所以应该不是这里的问题,但目前也没什么方法,死马当活马医。我们直接chmod 777 *,然后再执行以下docker ps不出所料又报错了。所以我们先排查权限这一块的问题。
  • 文件更新?
    这个是我猜想的,因为过了个中秋没关机不知道docker desktop是不是自动更新了。
    • 换个思路排查文件,上面的操作过后我们知道了docker命令不是/mnt/c/Program\ Files/Docker/Docker/resources/bin/下面的,那系统到底执行的是哪个呢。

    • 我们执行whereis docker 发现/usr/bin/docker,切到目录去查找一下。在这里插入图片描述
      有点子意思,一个软连接到/mnt/wsl下面去了,其实到这里直觉就告诉我应该是找对了。

    • 切到/mnt/wsl/docker-desktop追查下去,发现/mnt/wsl/底下就没得这个目录。在这里插入图片描述
      看了下修改时间也很诡异,刚好就是在我发现docker命令执行不了的时候前一点点。这也从侧面加深了我的猜想。

    • 现在既然排查到了,就想着怎么来解决了。百度了n多竟然没有发现解决方案,脑阔痛。突然灵光一闪,如果只是目录丢失那重启的时候一般都是会重建的。这个其实是我从goland联想过来的。现在就是想办法让他重建目录了。

    • 首先肯定是从docker desktop入手,重启了发现没啥用。这时候思考是不是我的打开方式不对?想了下目录里有wsl这一层,对应的docker desktop中跟这个有关系的好像只有配置里面有几个勾选有关。然后我们再一次进行尝试,取消勾选然后重新勾选。在这里插入图片描述
      老泪纵横,目录终于肥来了。

    • 验证一下 cd /var/www/dev_docker && docker-compose ps
      在这里插入图片描述

    • 打完收工

总结
  • 这种生产工具,最好是关闭自动更新。不然真的是不知道会出什么杂毛问题。
  • 排查问题的时候,善于观察到目录的修改时间。虽然是很小的一个东西,但是能起到很好的效果。
  • 善于联想,比如这次处理问题其实就是联想到了上次的goland自动生成目录。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值