运行 如何在 ruby docker-api 中将图像作为守护进程?
How run image as daemon in ruby docker-api?
我需要 docker-api 允许我 运行 映像作为守护程序的方法。
Docker命令供参考:docker run -t -d some_image
有人知道解决办法吗?
我找到了解决办法:
container = Docker::Container.create('Cmd' => ["tail", "-f", "/dev/null"], 'Image' => 'some_image')
container.start
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08564fe29591 some_image "tail -f /dev/null" 20 seconds ago Up 10 seconds nervous_ardinghelli
容器启动后未退出,可以在该容器中执行!
您不需要做任何特别的事情。在 API 级别,docker run
做三件事:
- 它creates a new container包含您指定的大部分选项;
- 它starts the container;和
- 它attaches to the containers's stdin and stdout.
您 link 的 GitHub 项目有一些相当复杂的例子。 (它的 API documentation doesn't say a whole lot beyond that; for example the Docker::Container 文档大多只是列出方法,而没有解释可以进入各种哈希参数的内容。)如果您创建并启动容器,但不附加到它,它将具有与 [=容器 运行 的 12=] "in the background"。
# Lifted from https://github.com/swipely/docker-api
# Create a Container.
container = Docker::Container.create('Cmd' => ['ls'], 'Image' => 'base')
# Start running the Container.
container.start
# It is "in the background", unless you specifically #attach to it or
# #wait for it.
我需要 docker-api 允许我 运行 映像作为守护程序的方法。
Docker命令供参考:docker run -t -d some_image
有人知道解决办法吗?
我找到了解决办法:
container = Docker::Container.create('Cmd' => ["tail", "-f", "/dev/null"], 'Image' => 'some_image')
container.start
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08564fe29591 some_image "tail -f /dev/null" 20 seconds ago Up 10 seconds nervous_ardinghelli
容器启动后未退出,可以在该容器中执行!
您不需要做任何特别的事情。在 API 级别,docker run
做三件事:
- 它creates a new container包含您指定的大部分选项;
- 它starts the container;和
- 它attaches to the containers's stdin and stdout.
您 link 的 GitHub 项目有一些相当复杂的例子。 (它的 API documentation doesn't say a whole lot beyond that; for example the Docker::Container 文档大多只是列出方法,而没有解释可以进入各种哈希参数的内容。)如果您创建并启动容器,但不附加到它,它将具有与 [=容器 运行 的 12=] "in the background"。
# Lifted from https://github.com/swipely/docker-api
# Create a Container.
container = Docker::Container.create('Cmd' => ['ls'], 'Image' => 'base')
# Start running the Container.
container.start
# It is "in the background", unless you specifically #attach to it or
# #wait for it.