2017-01-18 8 views
4

Я тестирую Docker с базовым базовым проектом .NET. Я строю и изображение из этого файла докеров:Docker ip для windows

FROM microsoft/dotnet:latest 

COPY . /app 

WORKDIR /app/API 

RUN ["dotnet", "restore"] 

RUN ["dotnet", "build"] 

EXPOSE 5000/tcp 

CMD ["dotnet", "run", "--server.urls", "http://*:5000"] 

Я запускаю его, и он работает безупречно. Теперь проблема только в том, на чем работает IP?

Я запускаю Docker на Windows!

С уважением

+1

Используете "Docker для Windows" или "Докер Toolbox для Windows"? если это Docker Toolbox, IP-адрес по умолчанию должен быть 192.168.99.100, вы должны увидеть его при запуске оболочки докера, иначе ip-адрес должен быть таким же, как ваш локальный компьютер. – Takahiro

+0

Привет! Я запускаю докер для окон. Таким образом, вы имеете в виду фактический IP-адрес моего ПК, а не default/ipv4, но тот, который я получаю от, например, мифибрик или что-то :)? – TanguyB

+0

@Takahiro не работает ни мой localhost, ни по умолчанию, ни ipv4, ни public ip. – TanguyB

ответ

2

Вы уже обнажая порт внутренне, так что единственное, что я могу предложить, чтобы проверить, вы открываете порт при запуске изображение тоже:

docker run -it -p 5000:5000 <imagename>

Этот откроет порт 5000 внутри экземпляра до порта 5000 на вашем локальном компьютере и затем будет доступен по адресу 127.0.0.1:5000 или localhost:5000.

Вы также должны убедиться, что вы принимаете какое-либо имя хоста в Main() в Program.cs с .UseUrls("http://*:5000/") на вашем WebHostBuilder.

3

У меня возникли проблемы с запущенными контейнерами linux, созданными для dotnet asp.net core 2 на докере для окон.

Команда, которую я использовал, чтобы запустить свой контейнер был:

docker run -it --rm -p 3394:3394 --name <name> <container> 

я мог обстреливать в контейнер и убедитесь, что приложение было слушать и возвращать результаты.

Однако попытка доступа к приложению с моей машины на порте 3394 не будет работать для 127.0.0.1, localhost или IP-адреса моего компьютера в сети.

Однако выполнение этой команды дает IP-адрес, выделяемый Docker хост:

docker inspect -f "{{ .NetworkSettings.IPAddress }}" <name> 

В моем случае IP был 172.17.0.2. Однако доступ к 172.17.0.2:3394 еще не сработал.

Последний кусок нужно было запустить следующее в поднятом DOS Prompt:

route /P add 172.0.0.0 MASK 255.0.0.0 10.0.75.2 

Этот дополнительный маршрут так моя машина не искал адрес через мой WAN, который был диагностирован с помощью tracert.

Заслуга https://github.com/docker/for-win/issues/221

Смежные вопросы