2017-07-09 6 views
0

GoでGorillaフレームワークを使用してWebサービスを公開しています。私は/helloに "Hello World"エンドポイントを持っています。これは、Postman、ブラウザまたはcurlからヒットしたときにうまく動作します。DockerからGolang Webserverにアクセスできない

Dockerにバンドルすると問題が発生します。私Dockerfileは、今私ができるssh容器に

FROM alpine 
COPY ./target/himer-users-go /app 
ENV PORT 9000 
RUN echo $PORT 
ENTRYPOINT /app 
EXPOSE ${PORT} 

以下の通りです(alpinecurlにバンドルされて来ていないので)wgetを使用してサーバをping

しかし、私は

のようなイメージを実行したとき
docker run -d -p 9000:9000 namespace/image 

ホストシステムからサーバーにアクセスできません。

ご協力いただければ幸いです。

+0

alpineにはSSHサーバーがインストールされていないので、 'docker exec'を使用してください。https://docs.docker.com/engine/reference/commandline/exec/ docを参照してください。 – user2915097

答えて

1

私が代わりにlocalhost

0.0.0.0で問題がサーバーを暴露することによってそれを解決するには、私が唯一のローカルホストに送信された要求を処理するために自分のウェブサーバを言ったということです。 Dockerが行うネットワークマングリングのため、ウェブサーバーに表示されるトラフィックは、あたかもlocalhostに送信されたかのように、Webサーバーには見えません。ウェブサーバーに0.0.0.0を聞くように指示することで、トラフィックが最初に送信された場所を気にせず、すべて受け入れるようにすることが効果的です。