0

如果我们在 dockerfile 或 docker-compose 文件中指定单个端口,如下所示

  sshd:
    build: ./backend/mock/sshd
    volumes:
      - ./docker/sftp_upload_dir:/root/upload_dir
    ports:
      - '22'. #<----------

并使用 docker-compose 文件和 nerdctl 使用命令

nerdctl compose up

然后 nerdctl 命令将退出并出现以下错误

FATA[0000] unsupported port number: 0  
4

1 回答 1

1

根据 docker 文档https://docs.docker.com/compose/compose-file/compose-file-v3/#ports

There are three options:

Specify both ports (HOST:CONTAINER)
Specify just the container port (an ephemeral host port is chosen for the host port).

因此选择 0 作为产生错误的主机端口,因此解决方案是显式指定主机端口,如下所示

  sshd:
    build: ./backend/mock/sshd
    volumes:
      - ./docker/sftp_upload_dir:/root/upload_dir
    ports:
      - '22:22' #<<<<---------

请注意,我在最后一行22:之前已明确添加22以使其与nerdctl. 它默认使用 docker-compose up。

于 2022-01-10T10:25:54.557 回答