从容器中创建docker容器

从容器中创建docker容器,docker,Docker,我的主机上有一个运行容器的docker。我想知道是否有可能,最好的方法是什么,从运行中的容器“触发”容器创建 假设我的机器是主机,我有一个名为app的容器(id为123456789)在主机上运行 root@host $ docker contain ls 123456789 app_mage .... app 我想在主机上从应用程序中创建一个容器 root@123456789 $ docker run --name app2 ... 我需要的是让我的应用程序在docker上

我的主机上有一个运行容器的docker。我想知道是否有可能,最好的方法是什么,从运行中的容器“触发”容器创建

假设我的机器是主机,我有一个名为app的容器(id为123456789)在主机上运行

root@host $ docker contain ls
123456789    app_mage    ....    app
我想在主机上从应用程序中创建一个容器

root@123456789 $ docker run --name app2 ...

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

docker社区的大多数人都会放弃这些类型的设计,但这是非常可行的

与此类似,您可以简单地将docker.sock文件从主机装载到容器中,从而授予其访问docker守护程序的权限

为了使事情更加自动化,您可以使用从容器内部启动容器,这将反过来访问托管容器的主机上的Docker deamon,您将从中生成更多容器

例如:

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,并在新创建的容器内运行该方法,该容器又创建了一个新的容器test2,该容器test2与test1在同一主机上运行

最好的方法可能是将应用程序架构成不需要这样。如果必须,您可以将主机的Docker套接字装载到容器中,但它对主机具有不受限制的根级别访问权限。您知道其他工具(如Docker engine、Docker machine)是否有帮助吗?
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")