2017-04-27 58 views
0

我想为RYU控制器编排一个Docker容器。我找到了一本关于如何创建和运行效果相当不错的教程,并且我计划根据教程编写cloudify蓝图。我没有处理如何在为cloudify编写蓝图时正确选择“/ bin/bash”选项

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): 
... 

https://github.com/docker/docker-py/blob/master/docker/api/container.py

作为/bin/bash是启动一个终端和更像一个路径,我再次尝试working_dir: /bin/bash。问题依然存在。

那么,任何精通分析一些想法看到参数?

+0

发现不使用的截图来代表你的代码。 – BMW

+0

感谢您的编辑。作为新来的,我不熟悉这些格式。所以我转向图片... @BMW – Lootii

回答

1

我相信你必须以不同的方式来实现它。

你可以看一下下面的示例代码:

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 

如果你需要更多的例子,你可以在 http://docs.getcloudify.org/4.0.0/plugins/docker/

+0

感谢您的关注。我注意到'命令:/ bin/bash 20',但不知道数字的含义。既然你提出来了,我会重新考虑。 – Lootii