将写入权限设置到docker窗口/ Windows容器内的卷文件夹中
如何设置写入权限到docker的Windows / Windows容器内的卷文件夹?
Windows上的Docker(Microsoft Windows Server 2016 Standard 10.0.14393)主机具有基于nanoserver的窗口容器。 容器运行jboss与应该将其日志写入%JBOSS_HOME%\bin\logFolder
。 一切工作在容器外面。 应用程序工作,但logFolder是空的。
Dockerfile
# escape=`` FROM sapiens/jdk8_112x64:nano COPY sources / ENV JBOSS_HOME C:\jboss7 VOLUME ${JBOSS_HOME}\bin\logFolder EXPOSE 8080 ENTRYPOINT %JBOSS_HOME%\bin\standalone.bat
Docker运行命令,其中test是映像名称:
docker run -p 80:8080 -it -v C:\Users\dev\volumes\logs\:C:\jboss7\bin\logFolder\ test
当我尝试把文件放在...\volumes\logs
文件夹中时,我可以在容器中看到它们,但是jboss不能将任何东西写入...bin\logFolder
。
文件夹...\bin\logFolder
存在于图像和容器中。
对于docker exec -it 3393cfd00422 cmd /s /c "echo 123 > c:\jboss7\bin\logFolder"
我得到Access is denied
。
对于docker exec -it 3393cfd00422 cmd /s /c "icacls c:\jboss7\bin\logFolder"
我得到
NT AUTHORITY\SYSTEM:(OI)(CI)(F) BUILTIN\Administrators:(OI)(CI)(F) S-1-5-21-1993962763-1965331169-1801674531-11335:(OI)(CI)(F)
对于docker exec -it 3393cfd00422 cmd /s /c "dir c:\jboss7\bin"
我得到
... {timestamp} <SYMLINKD> logFolder [\\?\ContainerMappedDirectories\{UID}] ...
对于docker exec -it e58ddbc429d9 cmd /s /c "echo %USERNAME%"
我得到ContainerAdministrator
我如何让Jboss写入logFolder?