代码之家  ›  专栏  ›  技术社区  ›  Francesco Borzi

带有控制台应用程序的Docker容器以不合适的方式插入命令

  •  0
  • Francesco Borzi  · 技术社区  · 7 年前

    FROM ubuntu:bionic
    
    # Some non-relevant steps...
    
    CMD  bin/my-console-app
    

    my-console-app 是一个简单的控制台应用程序,在运行时,它通常为您提供插入命令的可能性。

    ./my-console-app
    my-console> some-command
    Some result
    my-console> some-other-command
    Some other result
    

    如果我运行使用上述Dockerfile构建的容器 -d ,一切都很好:

    docker run --name my-app --network host -d myapp

    通过网络,我可以看到console应用程序正在正确运行。

    -d ,例如:

    docker run --name my-app --network host myapp

    my-console> 
    my-console> 
    my-console> 
    my-console> 
    my-console> 
    my-console> 
    my-console> 
    my-console>
    ...
    

    这将永远持续下去。我无法将任何命令插入我的控制台应用程序。

    为什么会这样?我应该做些什么来防止这种情况?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Francesco Borzi    7 年前

    -it docker run

    因此,现在我使用以下方法运行容器:

    docker run --name my-app --network host -it myapp

    编辑

    stdin_open: true
    tty: true