MacOS M1环境下Docker容器绑定卷无需权限访问本地文件系统原因咨询
问题:MacOS M1上Docker Desktop使用VirtioFS时容器用户无需权限即可访问本地目录?
环境与配置
我在MacOS M1的/Users/myuser/sql目录下运行以下Docker Compose配置,Docker环境采用Docker Desktop并使用VirtioFS实现文件共享:
services: sqlserver: image: mcr.microsoft.com/mssql/server:2022-latest platform: linux/amd64 hostname: sqlserver environment: ACCEPT_EULA: "Y" MSSQL_SA_PASSWORD: "mypassw0rd" MSSQL_PID: "Developer" ports: - "1433:1433" volumes: - ./mssql:/var/opt/mssql networks: - sqlserver-nw networks: sqlserver-nw:
容器成功启动,但我无法理解为何容器内用户无需设置文件权限即可访问本地文件系统。
容器内命令输出
进入容器执行id命令,输出如下:
$ id uid=10001(mssql) gid=10001(mssql) groups=10001(mssql) $ namei -l /var/opt/mssql f: /var/opt/mssql drwxr-xr-x root root / drwxr-xr-x root root var drwxr-xr-x root root opt drwxr-xr-x mssql mssql mssql
本地目录命令输出
在本地/Users/myuser/sql目录执行以下命令,输出如下:
$ ls -ld mssql drwxr-xr-x 6 myuser myusergroup 192 Jul 1 12:21 mssql $ id uid=503(myuser) gid=20(myusergroup)
补充说明
- Docker Desktop的文件共享设置已包含
/Users目录。 - 此前了解到相关问题中提到容器内文件属主应与主机一致,但我的输出显示两者并不相同;我还发现一个权限相关的问题,但不确定是否相关。
内容的提问来源于stack exchange,提问作者ikhvjs
相关产品推荐
相关产品推荐

