ds19891231
ds19891231
2016-03-04 04:55

如何与Docker容器建立TCP传出连接?

  • connection
  • sockets
  • docker

My Go application makes TLS connections via tls.Dial() to exchange data.

It works fine when run from the host:

enter image description here

But the outgoing connection doesn't seem to work when the app is run from a Docker container. The app hangs indefinitely.

enter image description here

Note 1: Same behavior with using docker run -p $(docker-machine ip):2500:2500 ...

Note 2: VM doesn't have extra port forwarding settings other than the default settings that came with docker-machine's default VM.

Docker image build with Dockerfile:

FROM golang:latest

RUN mkdir -p "$GOPATH/src/path/to/app"
# Install dependencies
RUN go get github.com/path/to/dep

VOLUME "$GOPATH/src/path/to/app"
EXPOSE 2500
WORKDIR "$GOPATH/src/path/to/app"
CMD ["go", "run", "main.go"]

Host is OS X running docker-machine.

Question

How can I make the TCP outgoing connection to work?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答

为你推荐