Docker似乎没有映射端口

时间:2016-09-21 03:55:09

标签: docker dockerfile hugo

我正在使用Hugo

尝试在Docker容器内运行,以便人们轻松管理内容。

我的第一个任务是让Hugo运行,并且人们可以在本地查看该网站。

这是我的Dockerfile:

FROM alpine:3.3

RUN apk update && apk upgrade && \
    apk add --no-cache go bash git openssh && \
    mkdir -p /aws && \
    apk -Uuv add groff less python py-pip && \
    pip install awscli && \
    apk --purge -v del py-pip && \
    rm /var/cache/apk/* && \
    mkdir -p /go/src /go/bin && chmod -R 777 /go

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

RUN go get -v github.com/spf13/hugo

RUN git clone http://mygitrepo.com /app
WORKDIR /app

EXPOSE 1313

ENTRYPOINT ["hugo","server"]

我正在查看网站仓库然后运行Hugo - hugo server

然后我通过以下方式运行此容器:

docker run -d -p 1313:1313 --name app app

哪些报告一切正常,但是当我尝试在localhost:1313本地浏览时,我什么都没看到。

我出错的任何想法?

更新

docker ps给了我:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
9e1f12849044        app                "hugo server"       16 minutes ago      Up 16 minutes       0.0.0.0:1313->1313/tcp   app

docker logs 9e1给了我:

Started building sites ...
Built site for language en:
0 draft content
0 future content
0 expired content
25 pages created
0 non-page files copied
0 paginator pages created
0 tags created
0 categories created
total in 64 ms
Watching for changes in /ltec/{data,content,layouts,static,themes}
Serving pages from memory
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,但是按照本教程http://ahmedalani.com/post/so-recursive-it-hurts/,说明要使用 hugo服务器命令中的参数 - bind

添加提到的param,ip 0.0.0.0 我们有 - bind = 0.0.0.0

它对我很有用,我认为这是每个容器采用 localhost 进行自我范围的自然行为,但是如果你与0.0.0.0绑定则需要一个可见范围到主要主机。

答案 1 :(得分:0)

删除Dockerfile中的EXPOSE 1313Dockerfile reference.

我希望它有所帮助。

答案 2 :(得分:0)

这是因为Docker实际上是在VM中运行。您需要导航到docker-machine ip而不是localhost。

curl $(docker-machine ip):1313