gpt4 book ai didi

visual-studio - Docker Desktop for Windows 使用 Linux 容器 - 运行容器时出现权限错误

转载 作者:行者123 更新时间:2023-12-02 19:22:54 26 4
gpt4 key购买 nike

我一直在关注这个tutorial我一直在使用 VS2019 创建 Dockerfile。我在 Windows 10 上使用 Docker Desktop,而我的应用程序“AccountOwnerServer”正在使用 Linux 容器。从 Dockerfile 构建时,它成功通过步骤 1 - 20 没有问题,但在 Powershell 中打印以下安全警告:

SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

当我使用 docker run --rm -it -p 8080:80 codemazeblog/accountowner:build 运行容器时我在 powershell 中收到以下错误: C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: driver failed programming external connectivity on endpoint dazzling_chaplygin (e784aeb7f33b182e39d52e0ea37bb035feb6bcefdc53b0d2f4160dba7ec46a99): Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
我不确定到底出了什么问题或如何解决它,因为我是 Docker 的相对新手。

Dockerfile
WORKDIR /app
EXPOSE 80

FROM microsoft/aspnetcore-build:2.0-stretch AS build
WORKDIR /src
COPY ["AccountOwnerServer/AccountOwnerServer.csproj", "AccountOwnerServer/"]
COPY ["Contracts/Contracts.csproj", "Contracts/"]
COPY ["Entities/Entities.csproj", "Entities/"]
COPY ["LoggerService/LoggerService.csproj", "LoggerService/"]
COPY ["Repository/Repository.csproj", "Repository/"]
RUN dotnet restore "AccountOwnerServer/AccountOwnerServer.csproj"
COPY . .
WORKDIR "/src/AccountOwnerServer"
RUN dotnet build "AccountOwnerServer.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "AccountOwnerServer.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "AccountOwnerServer.dll"]

最佳答案

所以,事情就是这样。我将您的问题分为两部分,我将一一回答:

第 1 部分 :您收到安全警告“安全警告:您正在从 Windows 针对非 Windows Docker 主机构建 Docker 镜像。添加到构建上下文的所有文件和目录都将具有“-rwxr-xr-x”权限。建议仔细检查并重置敏感文件和目录的权限。":
回答 :Windows 和 Linux 是两种不同的操作系统,有两种不同的方式来维护文件、文件夹及其权限。警告的意思是,由于您构建最终将在非 Windows 平台上运行的 docker 镜像,因此 soo windows 已自动将文件权限设置为“-rwxr-xr-x”,这意味着文件具有用户的读、写和执行权限(-rwxr),组的执行和读取权限(-xr)以及其他人的执行权限(-x)----见here有关权限的更多知识。它基本上警告您根据您的用例设置权限。

第 2 部分 :您在 docker run 语句中收到的错误:
回答 :尝试执行以下操作

  • 检查端口是否被其他进程阻塞或使用。 (操作方法请引用 here)
  • 如果不是,请运行您用来运行 docker run 命令的 powershell 或终端作为 管理员 .
  • 关于visual-studio - Docker Desktop for Windows 使用 Linux 容器 - 运行容器时出现权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58463014/

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