AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 772118
Accepted
Frye
Frye
Asked: 2016-04-22 15:27:29 +0800 CST2016-04-22 15:27:29 +0800 CST 2016-04-22 15:27:29 +0800 CST

如何在 docker 容器中公开端口

  • 772

我已经在自定义端口(8080)上的 docker 容器中运行了 Web 服务。在这里,我正在尝试运行一个容器,暴露相关容器的端口(如此处所示),但无济于事。

docker run -p 127.0.0.1:8080:8080 beatthemarket run wait

但我似乎无法到达那个 Web 服务端点。

  • http://127.0.0.1:8080
  • http://localhost:8080

i)我是否正确地暴露了容器的端口?ii)如果端口不可用,或者我的 Web 服务没有被调用(如果能够进入容器并卷曲端点,那就太好了)。

我的 Dockerfile 可以在这里看到。我正在使用 Adzerk 的boot-clj基础映像。

实际运行docker,每次取回一堆jar。然后启动块(wait任务),这就是我想要的(网络服务器将处理网络请求)。这就是我迷路的地方。在 docker 中启动,按照我的要求进行阻止。但我似乎无法获得根 URI应返回的基本Hello World消息。

$ docker run -p 127.0.0.1:8080:8080 beatthemarket run wait
Downloading https://github.com/boot-clj/boot/releases/download/2.5.5/boot.jar...
Retrieving dynapath-0.2.3.jar from https://clojars.org/repo/
Retrieving pod-2.5.5.jar from https://clojars.org/repo/
Retrieving shimdandy-impl-1.2.0.jar from https://repo1.maven.org/maven2/
Retrieving core-2.5.5.jar from https://clojars.org/repo/
...
Implicit target dir is deprecated, please use the target task instead.
Set BOOT_EMIT_TARGET=no to disable implicit target dir.

Chrome,curl 和 wget 都说连接被拒绝。

$ curl http://127.0.0.1:8080/
curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused

$ wget http://127.0.0.1:8080/
--2016-04-21 20:07:32--  http://127.0.0.1:8080/
Connecting to 127.0.0.1:8080... failed: Connection refused. 
port port-forwarding docker containers
  • 2 2 个回答
  • 8311 Views

2 个回答

  • Voted
  1. Best Answer
    Joe Doyle
    2016-04-22T19:07:26+08:002016-04-22T19:07:26+08:00

    您需要将该EXPOSE语句添加到 Dockerfile 中以获取端口 8080。

    这是来自 Docker 的参考:https ://docs.docker.com/engine/reference/builder/#expose

    您的最终 Dockerfile 应该如下所示:

    FROM adzerk/boot-clj
    
    EXPOSE 8080
    
    WORKDIR /app
    COPY . /app
    
    • 4
  2. the dude
    2018-07-25T08:51:02+08:002018-07-25T08:51:02+08:00

    -p 开关会在你的主机上打一个洞,桥接到你的 docker 实例,-p host_port:docker_instance_port

    现在你必须找出你的 docker 主机驻留在哪里。如果您使用的是 VirtualBox,请尝试运行:

    码头机器环境

    http://javagoogleappspot.blogspot.com/2018/07/docker-basics.html

    • 0

相关问题

  • 如何从命令提示符打开 Windows Server 2003 RTM 上的端口

  • 在wireshark中更改与端口关联的协议

  • GlassFish 更改 Web 服务的端口

  • 端口 135 / epmap

  • 如何查看 Windows 机器上是否正在使用端口?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve