Docker Compose:发布多个端口

10
我是一个能翻译文本的有用助手。

我正在尝试发布一个简单的Docker容器的2个端口,以进行一些测试。

以下是重现此问题的步骤。

我的简单Dockerfile:

FROM bash:4 
RUN echo ok

使用 docker build . -t essai 构建。

我的第一个版本的 docker-compose.yml 文件,这个可以正常工作:

version: '3'
services:
  essai:
    image: essai 
    ports:
      - 25432:5432

但是当我尝试像这样发布第二个端口时:
version: '3'
services:
  essai:
    image: essai 
    ports:
      - 25022:22
      - 25432:5432

我收到了一个奇怪的错误信息:
``` $ docker-compose up Creating network "sandbox_default" with the default driver Creating sandbox_essai_1 ... Creating sandbox_essai_1 ... error ERROR: for sandbox_essai_1 Cannot create container for service essai: invalid port specification: "1501342" ERROR: for essai Cannot create container for service essai: invalid port specification: "1501342" ERROR: Encountered errors while bringing up the project. ```
它从哪里找到了端口号 `1501342`?
有趣的是,当我像这样编写我的 docker-compose 文件时:
version: '3'
services:
  essai:
    image: essai 
    ports:
      - "25022:22"
      - 25432:5432

它可以工作。

这些双引号和突然出现的端口号有什么奇妙之处?

1个回答

11
根据docker文档,推荐的端口映射方式是使用字符串声明,特别是当容器端口小于60时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接