代码之家  ›  专栏  ›  技术社区  ›  Akshay Vijay Jain

不支持的端口号:0

  •  0
  • Akshay Vijay Jain  · 技术社区  · 4 年前

    如果我们在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  
    
    1 回复  |  直到 4 年前
        1
  •  3
  •   Akshay Vijay Jain    4 年前

    根据码头文件 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组合一起工作。

    推荐文章