问题场景:

环境:

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

【云原生】解决在Windows上在docker内启动docker报Operation not permitted相关推荐

  1. 云原生解决什么问题?

    最近在考虑从云原生角度去做一些架构维度的改造.但之前关注的在于平地而起的理想态云原生方案,基于存量架构来说就比较复杂了,比如如何衔接现有系统存量能力,低成本接入,同时还可以吃到技术升级的红利. 非常多 ...

  2. 云原生解决了什么问题?

    在数智化时代,软件变得越来越复杂,终端对于响应速度的要求越来越迫切,对运行稳定性的需求变得越来越挑剔,这给开发工作带来了很大的压力. 云原生解决了什么问题? 在原有技术的基础上,功能复杂程度.交付周期 ...

  3. 无法打开计算机上的event log服务,解决Win7 Windows Event Log服务无法启动问题

    当我们的电脑在使用时,或多或少都会遇到些问题,遇到这些问题我们不要着急,要懂得方法去解决,这里学下:Windows Event Log服务无法启动解决方法? 工具/原料 电脑:台式机.系统:win7旗 ...

  4. 在docker中启动服务报错:New main PID 558 does not belong to service

    在docker中启动服务报错: New main PID 558 does not belong to service, and PID file is not owned by root. Refu ...

  5. 阿里云祝顺民(江鹤):云原生SDWAN加速企业上云 引领未来智能网络

    第二届中国SD-WAN峰会于11月16日在北京盛大开幕,阿里云以黄金赞助商之名隆重参与.作为全球前三,亚太第一的云计算厂商,阿里云一直引领云网技术的演进及应用落地.过去一年,阿里云发布以云为中心的云原 ...

  6. 感恩有你一路相伴,数栈DTinsight云原生数据中台迈上新台阶

    2020年里,我们经历了新冠疫情.国际局势的跌宕起伏,危机与机遇并存. 即使在这样波荡起伏的2020年,袋鼠云推出的产品和服务仍受到社会各行各业的认可和肯定:今年,袋鼠云再次入选杭州"准独角 ...

  7. mongodb卸载_如何在Windows上安装MongoDB,启动,卸载

    mongodb卸载 Today we will learn how to install MongoDB on Windows. Most of us use Windows for our pers ...

  8. PE系统解决:Windows无法更新计算机的启动 0xc000000f

    0xc000000f Windows无法更新计算机的启动 (或 你的电脑 设备需要修复) U盘PE工具U盘魔术师 https://www.sysceo.com/usm或其他PE工具 将下载得到的压缩包 ...

  9. 如何访问docker内php,docker中容器之间如何访问

    我们都知道docker容器之间是互相隔离的,不能互相访问,但如果有些依赖关系的服务要怎么办呢.下面介绍三种方法解决容器互访问题. 方式一.虚拟ip访问 安装docker时,docker会默认创建一个内 ...

最新文章

  1. React源码分析与实现(一):组件的初始化与渲染
  2. Feign-1 Feign的简介及基础使用
  3. php mysql数据备份命令_MySQL数据备份与恢复的相关操作命令
  4. spring mvc学习(12)---使用idea创建第一个maven项目
  5. 从金庸的武侠到数学的江湖
  6. 数组重复次数最多的元素递归_使用递归计算链接列表中元素的出现次数
  7. Bitmap 和Drawable 的区别
  8. 【Hive】数据导入方法
  9. 15.Object Manager
  10. vue导出Excel图片
  11. Xcode9 LaunchScreen.storyboard 设置app启动图片
  12. 【项目】数据仓库概述
  13. oracle创建用户'表空间配额,牛刀小试:Oracle 用户表空间配额(quota )控制之随心所欲...
  14. Win11怎么加入工作组?Win11加入局域网工作组的方法
  15. LabVIEW树形控件
  16. PDF文件旋转最好用的方法
  17. 在wps里面怎么设置触发器_wps如何制作触发器
  18. Win10家庭版没有权限访问网上邻居,不能连接共享打印机的解决办法
  19. D 市场的 App 尽职调查报告
  20. 培训:3天带你快速上手Kubernetes | 上海站

热门文章

  1. Loop Energy为中国南京市公交车队提供燃料电池,创下超过7.5万公里的运营里程记录
  2. 在linux ubuntu下下载运行虚幻5引擎
  3. 百钱百鸡(Java)
  4. MyCat配置读写分离
  5. AnyDesk如何设置自动连接
  6. tomcat简介部署
  7. LLA(经纬高)坐标转换成ENU(东北天)坐标的详细推导
  8. 号外!Java退出神坛,Python稳居第一
  9. ubantu14.4源更换
  10. 微软云游戏专利:利用服务器为平板、手机游戏加速