Docker Windows容器403 - 禁止访问:拒绝访问

时间:2018-01-09 16:20:57

标签: asp.net windows-10 sql-server-express nancy docker-desktop

我在我的OkHttpClient client = new OkHttpClient(); HttpUrl.Builder urlBuilder = HttpUrl.parse(config.getServerRoot() + php).newBuilder(); String url = urlBuilder.build().toString(); Request request = new Request.Builder() .url(url) .build(); // Get a handler that can be used to post to the main thread client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(Call call, final Response response) throws IOException { // Check for failure if (!response.isSuccessful()) { throw new IOException("Unexpected code " + response); } // Read data on the worker thread final String result = response.body().string(); // result = [{"id":"6","name":"föö","content":"bär"}] } }); 中使用以下脚本创建了一个图像,但是当我使用容器的IP地址和端口(2000)浏览时,我得到403 - 禁止访问:访问被拒绝。我使用的是Windows 10.0.14393 Build 14393, Docker Desktop for Windows 。该项目是一个ASP.NET解决方案,包含Nancy,Entity Framework,AngularJS和SQL Server项目。我是否需要对IIS,Docker,Powershell等进行任何配置更改?我的Dockerfile脚本是:

Dockerfile

2 个答案:

答案 0 :(得分:0)

  1. 确保您的文件不会在.dockerignore

  2. 中被忽略
  3. 复制此Dockerfile

FROM microsoft/aspnet
WORKDIR /inetpub/wwwroot
COPY . /inetpub/wwwroot
# Give Full Access To Folder
RUN icacls 'c:/inetpub/wwwroot' /grant 'Everyone:(OI)(CI)F'
# Check that the files have been successfully copied
RUN dir 
  1. docker build -t测试。
  2. docker run -p 8001:80 test

答案 1 :(得分:-1)

不幸的是,可能有很多事情... 我有同样的问题,问题是/inetpub/wwwroot文件夹为空。 我可以看到您正在添加一个新的网站文件夹,但是您可以尝试:

我的docker文件是

# FROM microsoft/aspnet:4.7.1-windowsservercore-1709
FROM microsoft/aspnet:4.7.1-windowsservercore-ltsc2016
ARG source
WORKDIR /inetpub/wwwroot
COPY ${source:-obj/Docker/publish} /inetpub/wwwroot

您也可以尝试此处提出的解决方案: https://github.com/Microsoft/iis-docker/issues/5

干杯!

编辑: 使用localhost或127.0.0.1时,我也遇到问题。使用公共IP地址