无法打开在端口上运行的Docker应用

时间:2019-08-12 16:50:47

标签: docker dockerfile

我正在尝试构建https://filebrowser.xyz/installation的docker映像

我的Dockerfile:

FROM ubuntu:latest

RUN apt-get update && apt install curl -y

RUN curl -fsSL https://filebrowser.xyz/get.sh | bash

VOLUME /srv

EXPOSE 8080

ENTRYPOINT filebrowser -r /srv -p 8080

我构建了图像并由docker run -p 8080:8080 -v /home:/srv filemanager

运行

日志显示Listening on 127.0.0.1:8080。但是,当我打开localhost:8080时,它不起作用,连接失败

我已通过运行示例Nginx docker映像确认端口8080可用

2 个答案:

答案 0 :(得分:2)

Listening on 127.0.0.1:8080意味着服务器实际上是在docker容器的环回接口上侦听。即在容器外部将无法访问它。

要使其正常运行,您需要将filebrowser配置为在*:8080上运行。

更新

docker run -p 8080:8080 -v ~/some/path/filebrowser.json:/.filebrowser.json -v ~/some-path:/srv filemanager

为我工作,其中filebrowser.json包含

{
  "port": 8080,
  "baseURL": "",
  "address": "",
  "log": "stdout",
  "database": "/database.db",
  "root": "/srv"
}

正确的日志打印

2019/08/12 17:14:27 Using config file: /.filebrowser.json
2019/08/12 17:14:27 Listening on [::]:8080

答案 1 :(得分:1)

文件浏览器正在侦听回送地址。使用0.0.0.0

对其进行更改以侦听所有地址

使用--address选项在*:8080上运行

将ENTRYPOINT更改为以下内容-

ENTRYPOINT filebrowser -r /srv -a 0.0.0.0 -p 8080

日志将显示类似

Listening on [::]:8080