Я пытаюсь выполнить несколько простых сценариев, связанных с запуском приложений на основе ядра .net в контейнере Docker. Я работаю в Windows 10 и использую VS 2015 для dev. Я установил инструменты докеры VS и Docker-Machine, чтобы я мог локально использовать докер.Доступ к веб-сайту CoreClr, размещенному в Docker
Используя различные обучающие программы в Интернете я был в состоянии:
- Запустите апи проекта веб-локально VS успешно
- Установите .net ядро на моей машине Докер «по умолчанию» (который имеет IP из 192.168.99.100, что я получить, выполнив «Докер-машина инспектировать по умолчанию»)
- построить Docker изображение, содержащее мой простой веб-интерфейс API с помощью VS
- Expose порт 5123 на Docker изображение
Моя проблема в том, что даже после последнего шага (который подробно описан в нескольких онлайн-учебниках), я все еще не могу вызвать вызов в веб-api при вводе http://192.168.99.100:5123/api/values в браузере (я получаю «соединение отказано», ошибка).
Конфиг на мое изображение указывает на то, что воздействие порт работал (я удалил некоторые поля, которые имели нулевые значения):
{
"Id": "675c3aa63600ae3db7fce0353f5e3e42a10a31d436c48b1d7f3b0aff0887f45c",
"Created": "2016-09-05T16:55:04.917207712Z",
"Path": "/bin/sh",
"Args": [
"-c",
"dotnet CoreClr.Web.dll"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 10465,
"ExitCode": 0,
"Error": "",
"StartedAt": "2016-09-05T16:55:05.052990865Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "default",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
69,
287
],
},
"GraphDriver": {
"Name": "aufs",
"Data": null
},
"Mounts": [],
"Config": {
"Hostname": "675c3aa63600",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"5123/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"DOTNET_VERSION=1.0.0",
"DOTNET_DOWNLOAD_URL=https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/1.0.0/dotnet-debian-x64.1.0.0.tar.gz",
"ASPNETCORE_URLS=http://*:5123"
],
"Cmd": null,
"Image": "username/coreclr.web",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": [
"/bin/sh",
"-c",
"dotnet CoreClr.Web.dll"
],
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "509cbf68bb9d642a71ca26380541ceee1c1b86ed886515b52a62e21aecb5ca94",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"5123/tcp": null
},
"SandboxKey": "/var/run/docker/netns/509cbf68bb9d",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "16e381f947d84f37040a71e81a213e31014ef8327176a2e18fab12da2c429b5c",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.11",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:0b",
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "1eb481804e0a0f02ddaeca8e0868225b4d76795066fd0aedf950c83f8ee377fd",
"EndpointID": "16e381f947d84f37040a71e81a213e31014ef8327176a2e18fab12da2c429b5c",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.11",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:0b"
}
}
}
}
Это далеко как учебники/образцы, которые я нашел в Интернете пошли, и они не было этой проблемы.
Любая помощь или указатели оценили.
Благодаря
редактировать: добавлено web.config
?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
с приложениями настройки бытия:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Как выглядит конфигурация вашего приложения? – DavidG
Добавлен контент конфигурации в главный вопрос - это только значения по умолчанию, которые были сгенерированы –
Я не эксперт Docker, но разве конфиг не говорит, что IP-адрес равен 172.17.0.11? Так работает 'http: //172.17.0.11 :: 5123/api/values'? – DavidG