运行 如何在 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 做三件事:

  1. creates a new container包含您指定的大部分选项;
  2. starts the container;和
  3. 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.