2017-01-11 11 views
0

Я пытаюсь запустить свой веб-API ASP.NET Core 1.1 в контейнере Docker, но я не могу подключиться к веб-API из браузера или curl. Для устранения неполадок я также разработал стандартные контейнеры nginx и Apache httpd и не могу подключиться к ним, поэтому я считаю, что это проблема Docker/Docker Toolbox/configuration, а не проблема с моим приложением.Как подключиться к контейнеру, размещенному в Docker Toolbox?

я сосредоточусь на том, что я сделал с Nginx и Apache:

Я бегу Docker Toolbox на Windows 7 Professional, и кажется, что все работает, как и следовало ожидать.

  • Docker команды все работы, как ожидается,
  • я могу получить доступ к файловой системе, лежащие в основе Windows,
  • я могу получить ожидаемые результаты от curl http://localhost (если я начну сайт в IIS по умолчанию на Windows 7)

Так что теперь я выключаю IIS и запускать Nginx в контейнере:

$ docker run -d -p 80:80 nginx 
45bb1f373c11b820d8431de3eb3bf222d57d412de53e8625f461b62c4279e644 

Docker Теперь шо WS Nginx работает:

$ docker ps 
CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS       NAMES 
45bb1f373c11  nginx    "nginx -g 'daemon off" 47 seconds ago  Up 48 seconds  0.0.0.0:80->80/tcp, 443/tcp admiring_pike 

Но я не могу соединиться с любым curl (в командной строке Docker Toolbox) или веб-браузер в Windows:

$ curl http://localhost 
curl: (7) Failed to connect to localhost port 80: Connection refused 

я получаю те же результаты, если я запускаю Apache 2.4 (httpd).

Любые идеи? Благодаря! Peter

ответ

1

Я нашел ответ в другом вопросе here.

Поскольку Docker Toolbox работает на легкой виртуальной машине Linux, он имеет свой собственный IP-адрес. Нужно либо сопоставить localhost с VM, используя DOCKER_HOST и получить доступ к виртуальной машине через его IP-адрес, найденный с помощью команды:

docker-machine ip default