【云原生】解决在Windows上在docker内启动docker报Operation not permitted
创始人
2024-05-31 22:19:56

问题场景:

环境:

Windows 10

Docker Desktop 4.16

项目需要构建一个all-in-one容器,在容器内将项目所有其他容器启动。
例如postgresqlredis 等组件

这些组件全部配置在docker-compose.yml

docker-compose.yml 位于all-in-one容器内

现在我们用一个命令先启动 all-in-one 容器,该容器挂载了docker.sock 用于操作docker engine

docker run -p 5888:5888 -p 80:80 -p 443:443 -it -v c:/project/etc/bp:/etc/bp -v c:/project/tmp/:/opt/tmp -v c:/project/home/project_storage:/home/project_storage  -v  //var/run/docker.sock:/var/run/docker.sock --name=abc debian11:v1 /bin/bash

然后我们进入到该容器内,用 docker-compose 命令启动所有其他容器

docker-compose -f docker-compose.yml up -d

启动时报错
例如启动redis 的报错

PS C:\Users\abc> docker logs -f 116
chown: .: Operation not permitted
chown: .: Operation not permitted
chown: .: Operation not permitted
chown: .: Operation not permitted
chown: .: Operation not permitted
chown: .: Operation not permitted

docker-compose.yml 部分配置如下

version: '2.4'
services:postgresql:container_name: postgresqlimage: postgresql:latestrestart: alwayshealthcheck:test: pg_isreadyinterval: 15stimeout: 2sretries: 20start_period: 10senvironment:POSTGRES_PASSWORD: *****POSTGRES_USER: postgresPGDATA: /datavolumes:- /c/project/home/project_storage/postgresql/data:/data

postgresql 也有类似的报错
都是没有操作权限

解决方案:

PS C:\Users\abc> docker run --privileged=true -it -v /run/desktop/mnt/host/c/project/etc/bp:/etc/bp -v /run/desktop/mnt/host/c/project/tmp/:/opt/tmp -v /run/desktop/mnt/host/c/project/home/project_storage:/home/project_storage  -v  //var/run/docker.sock:/var/run/docker.sock --name=abc debian11:v1 /bin/bash

这样挂载后,docker-compose.yml 文件内的volume配置也要修改为

version: '2.4'
services:postgresql:container_name: postgresqlimage: postgresql:latestrestart: alwayshealthcheck:test: pg_isreadyinterval: 15stimeout: 2sretries: 20start_period: 10senvironment:POSTGRES_PASSWORD: *****POSTGRES_USER: postgresPGDATA: /datavolumes:- /run/desktop/mnt/host/c/project/home/project_storage/postgresql/data:/data

这样postgresql,redis 等容器就能起来了,不会再报权限问题

参考:

https://stackoverflow.com/questions/71018631/kubernetes-on-docker-for-windows-persistent-volume-with-hostpath-gives-operatio

相关内容

热门资讯

全区大学生书画艺术作品展开展 (来源:内蒙古日报)转自:内蒙古日报本报8月7日讯  (记者  马芳)8月4日,由自治区关工委、自治...
美联储主席沃什6月日程未显示与...   美联储主席凯文·沃什上任后首个完整月份的日程显示,他曾与议员、白宫官员和私营部门经济学家通话或会...
洗衣机哪款好 偏好节能静音的家... 清晨六点,阳台传来轻微而稳定的运转声,没有刺耳轰鸣,也没有反复加水的冗长等待——一台低能耗洗衣机正悄...
冰箱热卖榜单 3400元内风冷... 清晨厨房里飘着现磨咖啡的香气,孩子书包旁摆着昨夜预冷的酸奶,主妇打开冰箱取出水润如初的蓝莓——对中产...
冰箱选购指南 静音低噪+分区精... 清晨六点,厨房灯光微亮,冰箱门拉开时冷气轻涌而出,一盒刚解冻的牛排、几袋分装好的辅食、昨日烘焙剩余的...