如何在运行时使用ruby docker-api(https://github.com/swipely/docker-api)将主机卷挂载到docker中?Ruby docker-api来挂载卷
基本上,docker run -v path:path
功能与这个宝石。
如何在运行时使用ruby docker-api(https://github.com/swipely/docker-api)将主机卷挂载到docker中?Ruby docker-api来挂载卷
基本上,docker run -v path:path
功能与这个宝石。
在其README.md为docker-api gem状态本文档:
require 'docker'
# Create a Container.
container = Docker::Container.create('Cmd' => ['ls'], 'Image' => 'base')
# Attach to the Container. Currently, the below options are the only valid ones.
# By default, :stream, :stdout, and :stderr are set.
container.attach(:stream => true, :stdin => nil, :stdout => true, :stderr => true, :logs => true, :tty => false)
# => [["bin\nboot\ndev\netc\nhome\nlib\nlib64\nmedia\nmnt\nopt\nproc\nroot\nrun\nsbin\nselinux\nsrv\nsys\ntmp\nusr\nvar", []]
# If you wish to stream the attach method, a block may be supplied.
container = Docker::Container.create('Image' => 'base', 'Cmd' => ['find/-name *'])
container.tap(&:start).attach { |stream, chunk| puts "#{stream}: #{chunk}" }
stderr: 2013/10/30 17:16:24 Unable to locate find/-name *
# => [[], ["2013/10/30 17:16:24 Unable to locate find/-name *\n"]]
# If you want to attach to stdin of the container, supply an IO-like object:
container = Docker::Container.create('Image' => 'base', 'Cmd' => ['cat'], 'OpenStdin' => true, 'StdinOnce' => true)
container.tap(&:start).attach(stdin: StringIO.new("foo\nbar\n"))
# => [["foo\nbar\n"], []]
这是否帮助?我能问你为什么试图使用docker-api?你不能只用docker volumes (-v)?
当前README
错过了关于如何在容器中使用卷的部分。你应该罚款与以下命令与容器的文件夹中运行/foo
container = Docker::Container.create('Cmd' => %w[test -d /foo],
'Image' => 'debian:wheezy',
'Volumes' => {'/foo' => {}}
)
如果需要使用本地文件夹安装,更新Volumes' => {'/foo' => '/local_foo'}
您可以参考测试用例:
我真的不明白。您提供的示例中连接的本地音量在哪里?我只能在这些示例中找到stdout和stdin重定向? – nino