Zve*_*tko 10 docker docker-volume
我对不应该使用数据容器的普遍共识感到困惑.我有特定的用例,我想完成.
我想拥有docker nginx容器,并在其后面有一些带应用程序的其他容器.要运行我的应用程序的最新版本,我想从我的私人docker注册表下载ready容器.该应用程序现在纯粹是静态的HTML,JavaScript的东西.
所以我的计划是创建将保存文件的docker image,并在some/webapp文件夹中指定一个命名卷.nginx容器将为此卷提供服务.我没有看到任何其他方式如何将一堆文件移动到远程系统"docker containerinerized"方式.我实际上没有创建被诅咒的数据容器吗?
无论如何在app容器交换期间会发生什么?当我停止app容器时,该卷仍然可以访问,因为它放在主机上.当我拉动并启动新版本的app容器时.该卷将再次创建并预先填充存储在同一位置的图像文件,替换主机上的内容,以便nginx容器将从现在的新版本的应用程序服务器.权利?当我从nginx容器引用尚不存在的卷时会发生什么.
似乎命名值不会自动与图像内容一起提交.我也不确定如何在docker文件中创建命名卷,因为从这里获取的语法不起作用
FROM training/webapp
VOLUME webapp:/webapp
我想你可能想要我在这里描述的内容/sf/answers/2910322831/
卷的问题是,当重新创建容器时,新容器docker-compose down不会docker-compose pull + up将您的“新代码存储在卷中”,而是由于回收的卷,仍然是旧的匿名卷。关键是,无论如何,您都需要代码的匿名卷,因为您希望它可重新部署,而不是命名卷,因为您希望代码可交换。
重新创建时,匿名卷不会被删除,也就是说,假设您现在有 image:v1,并且拉取 image:v2,然后执行docker-compose up. 它将重新创建您的容器image:v2- 完成后,您将拥有一个新容器,但代码仍然来自旧容器,该容器基于 image:v1,因为 anon-volume 尚未被替换,所以它被重新创建- 已分配。docker-compose down && docker-compose up将为您解决这个问题 - 但在处理您的想法时您必须牢记这一点。(向下删除非卷)
一般来说,有一个优点/缺点,请参阅我的另一篇文章。
数据容器通常具有其他含义,并已被所谓的命名卷所取代。数据容器已用于建立“命名”的卷安装,而不是基于非卷。
过去,您必须创建一个带有卷的容器,然后使用基于容器名称的卷挂载(容器将是静态/名称部分),今天,您只需创建一个命名卷name并通过此挂载卷名称,不需要killed after start基于 busybox 的基于容器名称的卷挂载。
| 归档时间: | 
 | 
| 查看次数: | 1605 次 | 
| 最近记录: |