Обновление сообщения со всеми файлами, необходимыми для воссоздания установки. - По-прежнему та же проблема. Не удается получить доступ к сервису, запущенному в контейнере.Приложение, работающее в контейнере Docker на порте 4567, не может быть доступно извне
FROM python:3
RUN apt-get update
RUN apt-get install -y ruby rubygems
RUN gem install sinatra
WORKDIR /app
ADD . /app/
EXPOSE 4567
CMD ruby hei.rb -p 4567
hei.rb
require 'sinatra'
get '/' do
'Hello world!'
end
докер-compose.yml
version: '2'
services:
web:
build: .
ports:
- "4567:4567"
Я начал партию, запустив docker-compose up --build .
Docker PS возвращается: 0.0.0.0:4567->4567/tcp
Тем не менее, никакой ответ от порта 4567. Тестирование с завитом от главной машины.
$ curl 127.0.0.1:4567 # and 0.0.0.0:4567
LOCALHOST: 4567 ответов в пределах containter
$ docker-compose exec web curl localhost:4567
Hello world!%`
Что я должен сделать, чтобы быть в состоянии получить доступ к приложению Синатры работает на порту 4567?
Нет, ваши порты правильно выставлены и хорошо отображены. Этого должно быть достаточно. Если вы можете распечатать что-то из python exec при попытке завитки, вы должны увидеть его ответ. Какое завивание вы пытаетесь сделать из своего местного? –
У меня была аналогичная проблема. Попробуйте использовать 'wget' вместо' curl' внутри контейнера. –
Выдает ли 'curl -v' больше вывода? Может быть, это проблема прокси/DNS извне? Тогда попробуйте 'curl -v -noproxy 127.0.0.1'. – Ben