我对如何实现以下流程感到非常困惑
我有两个容器nginx和containers (将只有捆绑的资源)
因此可以有2-3个nginx实例和很少的资产实例。
因此,在我本地计算机或构建服务器上,我将使用grunt构建资产,捆绑的资产将位于映像中。
因此,如果我对捆绑的资源使用卷,它将如何沿着图像推送。
或者,如果我没有使用卷,那么nginx将如何从资产映像或(停止或运行)容器中获取挂载路径。
发布于 2017-04-24 19:41:25
主要有两种方法。
COPY
到nginx镜像上的一个位置。例如:来自: nginx COPY: myassets/dir/* /var/lib/html
这是最简单的方法。
如果您需要在容器之间共享相同的资源,那么您可以创建一个卷,并将此卷挂载到您的nginx容器中。在您尝试创建nginx容器之前,需要创建卷。
docker卷创建myassets
下一步是将文件复制到新创建的卷中。如果您的docker主机是本地的(例如: VirtualBox、Docker for Mac or Windows、Vmware Fusion、Parallel),则可以挂载包含资产的本地目录,并将其复制到卷中。例如:
docker run --rm -v /Users/myname/html:/html -v myassets:/temp -v sh -c "cp -rp /html/* /temp“
如果您的扩展底座主机托管在其他地方(AWS、Azure、远程服务器等)那么你就不能依赖挂载的本地驱动器了。您需要远程复制这些文件。
docker run -d --名称foo -v myassets:/temp高山尾部-f /dev/null docker cp myassets/* foo:/temp docker rm -f foo
这将创建一个名为foo
的容器,该容器在后台-d
中保持运行(尾部-f)。然后,我们将文件复制到装载myassets卷的位置,然后在完成后杀死容器。
当您在nginx容器上挂载卷时,它将覆盖该容器所在位置的所有内容。
docker运行-d -v myassets:/var/lib/html nginx
发布于 2017-04-25 00:35:21
您可以使用docker-compose为每个应用创建多容器docker环境,其中构建了多个资源docker镜像,这些镜像被挂载为nginx容器的数据卷。
参考docker-compose reference了解数据卷挂载,参考stackoverflow question了解从一个容器到另一个容器的挂载目录。
https://stackoverflow.com/questions/43581299
复制相似问题