我想为RYU控制器编排一个docker容器。我找到了一个如何创建和运行一个工作得很好的教程,我计划根据教程编写cloudify蓝图。我未能处理
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客户端错误' No Command Specified',就像" / 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):
...
on https://github.com/docker/docker-py/blob/master/docker/api/container.py
由于/bin/bash
是启动终端而更像路径,我再次尝试working_dir: /bin/bash
。问题仍然存在。
任何精通的人都愿意分享一些看到参数的想法吗?
答案 0 :(得分: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/