2016-10-03 2 views
1

나는 간단한 오류를 범하고 있지만, Mac에서 docker를 사용하여 포트를 제대로 노출 할 수는 없습니다.Docker 컨테이너 외부의 서비스에 액세스 할 수 없습니다.

FROM ruby:2.3.1 

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs 

RUN mkdir /myapp 
WORKDIR /myapp 
ADD Gemfile /myapp/Gemfile 
ADD Gemfile.lock /myapp/Gemfile.lock 
RUN bundle install 
ADD . /myapp 

EXPOSE 3000 

가 그럼 난 이미지를 구축 :

> rails -v 
Rails 5.0.0.1 
> rails new dt6 
# ... rails creates a new app 
> cd dt6 

그럼 내가 레일 응용 프로그램의 루트에이 Dockerfile을 추가

호스트에서 처음부터 시작 : 여기에 내가 뭘하는지입니다 컨테이너를 실행하십시오.

> docker build -t dt6 . 

> docker run --rm -p 3000:3000 dt6 rails s 
=> Booting Puma 
=> Rails 5.0.0.1 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
Puma starting in single mode... 
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity 
* Min threads: 5, max threads: 5 
* Environment: development 
* Listening on tcp://localhost:3000 
Use Ctrl-C to stop 

정상적인 레일/푸마처럼 보입니다. "서비스를 시작할 준비가되었습니다."라는 메시지가 나타납니다.

> curl localhost:3001 
curl: (7) Failed to connect to localhost port 3001: Connection refused 
: 나는 임의의 포트에 대해 다른 메시지가 있기 때문에

> curl localhost:3000 
curl: (52) Empty reply from server 

나는, 고정 표시기의 포트 3000 뭔가 일을 알고있다 : 그러나, 호스트 머신에서, 나는 레일의 서버에 액세스 할 수 없습니다

특히 레일 서버 은 실행 중입니다. 내가 용기에 부착하고 내부에서 레일 서버를 공격하면, 그것을 작동 :

> docker exec -it dt6_container bash 
[email protected]:/myapp# curl localhost:3000 
<!DOCTYPE html> 
<html> 
<head> 
#... a normal html response from the rails server 

TLDR : 나는에서 서버에 액세스 할 때 고정 표시기 컨테이너에서 레일 서버를 실행, 나는 빈 반응을 얻고있다 호스트 컴퓨터. 내가 외부에서이 컨테이너 내부에서 실행중인 레일 서버에 http 요청을 할 수 있도록하려면 무엇을 잘못하고 있습니까?

+0

당신이하는 일은 Linux에서 잘 작동하지만, Mac이나 Windows에서는 그렇지 않습니다. VM을 사용하는 것은 Linux를 모방합니다. – user2915097

+0

https://www.viget.com/articles에서 추출하십시오./how-to-use-docker-on-os-x-the-missing-guide'curl $ (boot2docker ip) : 49153' (예제) – user2915097

+1

Mac 용 Docker 또는 Docker Machine/Docker Toolbox를 사용하고 있습니까? –

답변

0

CMD ["rails", "server", "-b", "0.0.0.0"]EXPOSE 3000 뒤에 추가하여 도커 파일에 추가하십시오.

관련 문제