当前位置: 首页 > 面试题库 >

使用Docker Compose运行时的端口发布

赵晟睿
2023-03-14
问题内容

我似乎无法找到一种方法来docker-compose run像我一样使用port发布docker run

使用Docker Compose(以及中的端口映射docker-compose.yml)会产生来自的“无法连接”错误curl

$ docker-compose run flask
 * Running on http://0.0.0.0:2048/ (Press CTRL+C to quit)

$ curl http://localhost:2048/
curl: (7) Failed connect to localhost:2048; Connection refused

但是,手动将端口传递给时,情况就很好了docker run

$ docker run -p 2048:2048 --name flask -t flask_image
 * Running on http://0.0.0.0:2048/ (Press CTRL+C to quit)

$ curl http://localhost:2048
Hello World!

我想念什么?

Docker文件

FROM centos:7

# Install EPEL repo.
RUN rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

# Install Python and Pip.
RUN yum -y update && yum -y install \
    python \
    python-pip

# Flask is necessary to run the app.
RUN pip install flask

EXPOSE 2048

ADD hello_world_flask_app.py /src/hello_world_flask_app.py
CMD ["python", "/src/hello_world_flask_app.py"]

hello_world_flask_app.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=2048)

docker-compose.yml

version: '2'
services:
  flask:
    build: .
    ports:
      - "2048:2048"

问题答案:

默认情况下,docker-compose run不发布服务的端口。您可以传递--service-ports选项以按docker-
compose.yml中的定义发布端口,也可以使用该-p选项发布所有端口。

请参阅docker-compose
run
的文档



 类似资料:
  • 我想隐藏我的健康检查并将其放在其他端口上。默认情况下,为入口创建的google kubernetes负载平衡器使用就绪探测进行外部健康检查。 我可以告诉入口使用我的替代端口而不必将其公开为入口上的服务吗? 我可以为入口配置不同的健康检查吗? 有没有更好的方法在不使用授权的情况下隐藏我的健康检查?

  • 当我运行时,我收到这个错误: 我有一个客户端文件夹,其中包含Vue应用程序,该文件夹与我的api文件夹位于同一目录中,其中包含后端。 当我在正确的目录中单独运行启动脚本时,每个脚本都可以完美地独立运行。这是我的脚本: 我知道C:\Users\reaga\Desktop\Projects\weather-app-v3\api\client/package。json不存在,但我不知道它为什么会首先出现

  • 我有一个在 aws ec2 实例上运行的 Express 节点服务器。当我跑步时 服务器运行在端口80上,当我向服务器发出http请求时,它工作正常。然而,当我跑步时 每当我发出请求时,都会出现以下错误 我尝试使用pm2在端口5000上运行,效果良好。 我对为什么sudo节点服务器.js工作但sudo pm2启动服务器.js不起作用感到非常困惑。 我在另一篇文章(在端口80上通过PM2运行Node

  • 我有以下部署,用于放置MySQL实例: 密码仅为root: 问题是我尝试在端口转发MySQL端口后连接到实例,按照此处的说明进行操作,但收到错误: 从pod本身连接到服务器可以工作: 我的设置与这里基本相同,只是我在minikube而不是GCP中运行集群。我的本地MySQL没有运行,所以我假设没有发生冲突的可能性。

  • 问题内容: 我在上设置了我的第一台服务器,而我对的细节还很陌生。(顺便说一句,我不想​​同时使用Apache。) 一切都已正确安装,但是我发现除非使用,否则无法监听node。但是出于安全原因,我宁愿不以超级用户身份运行它。 最佳做法是: 为节点设置良好的权限/用户,使其安全/沙盒化? 允许在这些限制内使用端口80。 启动节点并自动运行它。 处理发送到控制台的日志信息。 任何其他常规维护和安全问题。

  • 我需要连接到MongoDB通过SSH隧道和JSch端口转发抛出一个错误: 无法绑定本地端口127.0.0.1:27017 我必须通过SSH隧道连接到MongoDB。我在stackoverflow上找到了代码,它解决了我的问题。但几周后,同样的代码停止了工作。我无法确定原因。此外,使用我在Java代码中使用的相同凭据,我还尝试使用SSH-L命令通过CMD连接到相同的凭据,并且工作正常。我还可以使用N