繁体   English   中英

Docker:是否可以在没有卷的情况下在2个容器之间共享数据?

[英]Docker: Is it possible to share data between 2 containers without a volume?

我有2个容器: webnginx 当我构建web容器时,在容器内生成前端的静态资源。

现在,我想在不使用主机上的卷的情况下在webnginx之间共享这些资产。 否则,我将不得不在主机端构建这些静态资产,然后将其作为卷包含到web容器中并与nginx容器共享。 从构建系统的角度来看,这是不可取的。

有没有办法在web容器中构建静态资产,然后与nginx共享它们?

否则,我将不得不在主机端构建这些静态资产,然后将其作为卷包含到Web容器中并与nginx容器共享。

这句话似乎不正确。

如果静态资产是作为构建过程的一部分生成的,那么只需在运行时将该卷安装在该目录的顶部。 Docker将负责将基础内容复制到卷中,之后您可以使用--volumes-from在nginx容器中访问它。

例如,如果我从我的Web容器的Dockerfile开始:

FROM alpine

RUN apk add --update darkhttpd
COPY assets /assets
CMD ["darkhttpd", "/assets"]

我现在有一个包含我的静态资产的目录/assets资产。 如果我将此图像运行为:

docker run -v /assets --name web web

然后/assets将(a)成为一个卷,(b)包含/assets目录的内容。

现在你可以启动一个nginx容器并与它共享这些数据:

docker run --volumes-from web nginx

nginx容器将包含一个包含静态资产的/assets目录。

我在这里放了一个小例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM