Docker 编写cloudify蓝图时如何正确选择“/bin/bash”选项

Docker 编写cloudify蓝图时如何正确选择“/bin/bash”选项,docker,cloudify,Docker,Cloudify,我想为RYU controller编制一个docker容器。我找到了一个关于如何创建和运行一个工作得相当好的应用程序的教程,我计划根据该教程编写CloudifyBlueprint。我没能应付 docker run -i -t -p 0.0.0.0:6633:6633 --name ryu3.15 muzixing/ryu:SDN /bin/bash 我不知道该把/bin/bash放在哪里。我试过这样做 node_tamplates: ... interfaces: cl

我想为RYU controller编制一个docker容器。我找到了一个关于如何创建和运行一个工作得相当好的应用程序的教程,我计划根据该教程编写CloudifyBlueprint。我没能应付

docker run -i -t -p 0.0.0.0:6633:6633 --name ryu3.15 muzixing/ryu:SDN /bin/bash
我不知道该把/bin/bash放在哪里。我试过这样做

node_tamplates:
  ...
    interfaces:
      cloudify.interfaces.circle
        create:
          implementation: docker.docker_plugin.tasks.create_container
          inputs:
            params:
              stdin_open: true
              tty: true
              command: /bin/bash
  ...
但它以400客户端错误“未指定命令”结束,就像/bin/bash一样

我读过cloudify文档和示例,没有找到有效的方法来解决这个问题。那么,是否有人知道传递/bin/bash的合适选项,或者我可以在哪里了解更多选项

提前谢谢

更新:

根据cloudify文档,我检查了那些允许的参数

def create_container(self, image, command=None, hostname=None, user=None,
                     detach=False, stdin_open=False, tty=False,
                     mem_limit=None, ports=None, environment=None,
                     dns=None, volumes=None, volumes_from=None,
                     network_disabled=False, name=None, entrypoint=None,
                     cpu_shares=None, working_dir=None, domainname=None,
                     memswap_limit=None, cpuset=None, host_config=None,
                     mac_address=None, labels=None, volume_driver=None,
                     stop_signal=None, networking_config=None,
                     healthcheck=None, stop_timeout=None):
...

由于/bin/bash要启动一个终端,更像是一个路径,所以我再次尝试使用_dir:/bin/bash。问题依然存在


那么,有谁愿意分享一些关于参数的想法吗?

我相信您必须以不同的方式实现它

您可以查看下面的示例代码:

 some_container:
type: cloudify.docker.Container
properties:
  name: some_name
  image:
    repository: dockeruser/dockerrepo
interfaces:
  cloudify.interfaces.lifecycle:
    create:
      implementation: docker.docker_plugin.tasks.create_container
      inputs:
        params:
          ports:
            - 8080
          stdin_open: true
          tty: true
          command: /bin/sleep 20
    start:
      implementation: docker.docker_plugin.tasks.start
      inputs:
        params:
          port_bindings:
            8080: 8080
如果您需要更多示例,请访问

不要使用屏幕截图来表示您的代码。谢谢您的编辑。作为新来的,我对格式不熟悉。所以我转向图片@谢谢你的关注。我确实注意到命令:/bin/bash 20,但不知道该数字的含义。既然你提起了,我会重新考虑的。