如何在启动(AWS)中将数据从Docker容器复制到ECS?

我有两个容器,一个是基于带assets目录的Node.JS的Web服务器 。 另一个容器是nginx ,它将页面请求提供给Web服务器,并从assets目录获取静态信息。

我创build了AWS群集,EC2实例,构build并将docker映像推送到注册中心,使任务部署我的应用程序,但是我无法将assets目录与nginx共享,因为目录不是此容器的一部分。

所以为了解决我的问题,我想出了创buildEFS并附加卷,为ec2-user添加权限,并通过path/var/html/assets使目录可用。

酷,以及如何将资产内容从我的networking服务器docker容器复制到 /var/html/assets

我想把它公开/共享,因为很快我会制造额外的服务器,也应该把资产放置到这个公共目录。

这个过程应该自动化,并在每个部署工作,家伙,有什么build议吗? 谢谢!

要将资产内容从Web服务器泊坞窗容器复制到主机,例如要将资源内容从容器保存到主机上的/ var / html / assets,请使用以下命令运行容器:

 docker run --name=nginx -d -v ~/var/html/assets:[Your Container path] -p 5000:80 nginx 

-v〜/ var / html / assets:[你的容器path]设置一个bindmount卷,把你的容器path从Nginx容器内部链接到主机上的〜/ var / html / assets目录。 Docker使用a:从容器path中分离出主机的path,主机path总是先到达。

希望它会帮助!

我通过编写主机目录来解决问题,编写了chmod 777 /var/html/assets ,然后添加了一个正在寻找主机目录的卷,并将其应用到webnginx容器。 运行web容器时,它调用cp指令将资产复制到挂载目录(主机目录)。 Nginx会看到填充的目录并可以使用它。

注意: 这是一个临时/解决方法,由于安全性,xrw访问目录不是一个好方法。