【问题标题】:Docker is not correctly binding ports on windowsDocker 未正确绑定 Windows 上的端口
【发布时间】:2016-02-05 13:16:36
【问题描述】:

我开始将我的项目移动到一个 docker 容器中,以便能够开发更多的东西,而不会过多地依赖我正在使用的操作系统。

这是我运行容器的方式:

docker run -d -v "$(pwd)/app:/app" -v "/c/Users/Geoffrey/Projects/go:/go" --name "server" --link mysql:mysql -p 127.0.0.1:3000:3000 my/server:latest

很快,我的程序会执行一个入口点来启动我的 go 应用,监听端口 3000。

这是与此容器关联的 Dockerfile:

##
## Author: Geoffrey Bauduin <bauduin.geo@gmail.com>
##

## Use Ubuntu 14.04
FROM ubuntu:trusty

MAINTAINER Geoffrey Bauduin <bauduin.geo@gmail.com> 

ENV DEBIAN_FRONTEND noninteractive

RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

RUN echo "force-unsafe-io" > /etc/dpkg/dpkg.cfg.d/02apt-speedup
RUN echo "Acquire::http {No-Cache=True;};" > /etc/apt/apt.conf.d/no-cache

RUN echo $'#!/bin/sh\nexit 101' > /usr/sbin/policy-rc.d
RUN chmod +x /usr/sbin/policy-rc.d

## Installing gcc for go
RUN apt-get update && apt-get install -y --no-install-recommends \
        g++ \
        gcc \
        libc6-dev \
        make \
        wget \
        git \
        ca-certificates \
    && rm -rf /var/lib/apt/lists/*

ENV GOLANG_VERSION 1.5.3
ENV GOLANG_DOWNLOAD_URL http://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz

RUN wget "$GOLANG_DOWNLOAD_URL" \
    && tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz \
    && rm go1.5.3.linux-amd64.tar.gz

ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH

RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

EXPOSE 3000

当我从 Windows 主机浏览 http://localhost:3000 时,Chrome 会返回 ERR_CONNECTION_REFUSED,与 127.0.0.1 相同的内容,我的网络地址(从 ipconfig 返回),甚至容器地址 (docker inspect server | grep IPAddress) 都显示同样的错误信息。 但是,当我在容器中执行/bin/bash,然后执行curl localhost:3000 时,我可以看到服务器实际上正在预期的端口上运行。

我有什么遗漏吗?比如为什么 Docker 不能在我的机器上绑定任何东西,而它没有显示任何错误消息?

任何帮助将不胜感激!

【问题讨论】:

    标签: windows ubuntu networking docker


    【解决方案1】:

    您应该从 -p 127.0.0.1:3000:3000 更改为 -p 3000:3000 或使用 -P 代替它们。

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 1970-01-01
      • 2021-05-19
      • 2018-10-07
      • 2020-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多