从容器内创建Docker容器

时间:2019-02-22 00:54:03

标签: docker

我的主机上有运行容器的docker。我想知道从运行中的容器中“触发”容器创建的可能性和最佳方法是什么。

假设我的计算机是主机,并且我有一个名为 app 的容器(ID为 123456789 )在主机上运行。

root@host $ docker contain ls
123456789    app_mage    ....    app

我想在应用

中的主机上创建一个容器
root@123456789 $ docker run --name app2 ...
root@host docker container ls
123456789    app_mage    ....    app
12345678A    app_mage    ....    app2

我需要让我的 app 在docker上运行并在隔离的环境中运行任意应用程序(但我宁愿避免docker-in-docker)

1 个答案:

答案 0 :(得分:2)

大多数Docker社区将逐渐远离这些类型的设计,但是这是非常可行的。

类似于Starting and stopping docker container from other container,您可以简单地将docker.sock文件从主机安装到容器中,赋予它访问docker守护程序的特权。

要使事情更加自动化,您可以使用docker-py sdk从容器内部启动容器,这将反过来在托管您要从中产生更多容器的容器的主机上访问Docker守护进程。 / p>

例如:

docker run -v /var/run/docker.sock:/var/run/docker.sock image1 --name test1

----

import docker
def create_container():
    docker.from_env().containers.run("image2", name="test2")

此示例启动容器test1,并在新创建的容器内运行该方法,而容器又在与test1相同的主机上运行一个新的容器test2。