gpt4 book ai didi

linux - Docker:从 Win10 安装到运行 ubuntu 的容器的目录中不允许进行 git 操作

转载 作者:行者123 更新时间:2023-12-02 11:38:35 24 4
gpt4 key购买 nike

公司电脑是Win10,不能带自己的LP,我想在Linux上开发,所以我准备在Windows上安装一个docker,并在上面运行一个Linux容器来进行开发。

--- 背景 ---

我已在 Win10 中安装了 Windows 版 Docker 桌面(19.03.8) 并提取了 Ubuntu 镜像。
我使用 -v 启动 Ubuntu 容器,将 win10 的 host_dir 挂载到容器的 slave_dir
挂载前的 host_dir 已经是一个 git 仓库,host_dir 中有一个 .git 目录。
通过使用 root 用户 进行 ssh,我编辑了容器中 slave_dir 中的文件,当我想要提交更改时,出现以下错误:

root@5f8d7d02ee70:~/slave_dir# git status
fatal: failed to read object 36fa53e7ecb9d1daa454fc82f7bd7310afa335b7: Operation not permitted

我猜 Win10 和我的 Linux 容器之间的 git Authority 有问题

Linux 容器的slave_dir:
enter image description here

Win10的host_dir:
enter image description here

我也遇到过类似的情况,博主说你应该使用 --user 运行 docker,并且--user' s param 应与您在主机上登录的参数相同

所以我尝试如下:

docker run -it --name test --user Leo -p 127.0.0.1:5001 -v host_dir:slave_dir image_name /bin/bash

不幸的是,slave_dir 的 uidgid 仍然是 root

在 Win10 上使用 cygwin,我使用 id 查找登录用户的 uid 和 gid,
并直接使用 uid/gid 重试运行 docker。

docker run -it --name test --user 4344296:1049089 -p 127.0.0.1:5001 -v host_dir:slave_dir image_name /bin/bash

enter image description here

天啊,还是不行!还是根! ……
不知道是我操作错误还是window的Docker-Desktop-For-Windows在挂载时对Authority做了一些trick。
谢谢大家!

最佳答案

看起来像是 Docker 2.2.0.4 的问题。可以在此处找到此问题的修复link (这对我有用)。

TL;DR:删除 Windows 中 .git 文件夹的只读权限。

关于linux - Docker:从 Win10 安装到运行 ubuntu 的容器的目录中不允许进行 git 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60767468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com