我运行一个带有2个Docker镜像的服务器,其中一个负责构建和打包,因此在/tmp上创建了很多短暂的东西。我希望这个容器/tmp不受持久卷(联合fs或卷)的支持,而是使用主机的/tmp,后者又是一个tmpfs卷,非常适合此类操作。保存对普通驱动器的访问会产生开销并导致对HDD的访问(磨损),我希望尽可能多地留在RAM中。一些选项是:将/tmp/:/tmp绑定(bind)到docker进程。如果另一个进程访问此目录,似乎不是很安全,并且有问题将卷绑定(bind)到/tmp。这意味着它在硬盘上,除非我设法将它移动到/tmp。然后仍然存在每次容器停止时删除此卷的问题,因为我更喜欢干净的石板。
这里似乎有类似的问题(docker-composevolumes_fromequivalentwithversion3、Howtoreplacevolumes_fromindocker-composerv3),但我认为他们没有回答问题(或者至少我不明白答案如何解决问题)。所以让我再试一次,非常具体。我有这个v2docker-compose.yml:version:'2'services:full-tests:volumes:-..:/opt/project-../../../ext-libs:/opt/ext-libs-./third-mapping:/opt/thirdunit-te
这里似乎有类似的问题(docker-composevolumes_fromequivalentwithversion3、Howtoreplacevolumes_fromindocker-composerv3),但我认为他们没有回答问题(或者至少我不明白答案如何解决问题)。所以让我再试一次,非常具体。我有这个v2docker-compose.yml:version:'2'services:full-tests:volumes:-..:/opt/project-../../../ext-libs:/opt/ext-libs-./third-mapping:/opt/thirdunit-te
我想知道下面的配置以适应docker-composer.yml的版本3!volumes_from不再有效,所以我应该跳过数据卷并将其替换为顶级卷吗?version:'2'services:php:build:./docker-files/php-fpm/.volumes_from:-dataworking_dir:/codelinks:-mysqlnginx:image:nginx:latestports:-"80:80"volumes:-./nginx/default.conf:/etc/nginx/conf.d/default.confvolumes_from:-datalinks
我想知道下面的配置以适应docker-composer.yml的版本3!volumes_from不再有效,所以我应该跳过数据卷并将其替换为顶级卷吗?version:'2'services:php:build:./docker-files/php-fpm/.volumes_from:-dataworking_dir:/codelinks:-mysqlnginx:image:nginx:latestports:-"80:80"volumes:-./nginx/default.conf:/etc/nginx/conf.d/default.confvolumes_from:-datalinks
举个例子吧。以下是nginx图片的VOLUME指令:VOLUME["/etc/nginx/sites-enabled","/etc/nginx/certs","/etc/nginx/conf.d","/var/log/nginx","/var/www/html"]这是我的问题:当你启动容器时,这些目录会出现在我的主机上吗?当我停止容器时,目录会保留吗?如果这些目录中的一些(或全部)已经存在于我的主机中,会发生什么?例如,假设图像在容器的/etc/nginx目录中带有一个默认配置文件,而我在/etc/nginx中也有一个配置文件在我的主机上。当容器启动时,这些文件中的哪一个会获得优先权?
举个例子吧。以下是nginx图片的VOLUME指令:VOLUME["/etc/nginx/sites-enabled","/etc/nginx/certs","/etc/nginx/conf.d","/var/log/nginx","/var/www/html"]这是我的问题:当你启动容器时,这些目录会出现在我的主机上吗?当我停止容器时,目录会保留吗?如果这些目录中的一些(或全部)已经存在于我的主机中,会发生什么?例如,假设图像在容器的/etc/nginx目录中带有一个默认配置文件,而我在/etc/nginx中也有一个配置文件在我的主机上。当容器启动时,这些文件中的哪一个会获得优先权?
当通过卷API创建卷时,即容器卷模式现在不一定是最佳实践:#dockervolumeinspecttest-data[{"Name":"test-data","Driver":"local","Mountpoint":"/var/lib/docker/volumes/test-data/_data"}]例如,我想在/data中存在docker卷(它安装在不同的物理卷中)。符号链接(symboliclink)无法做到这一点,绑定(bind)挂载可以做到这一点,但我想知道Docker中是否有一些配置可以更改每个单独卷的默认位置。 最佳答案
当通过卷API创建卷时,即容器卷模式现在不一定是最佳实践:#dockervolumeinspecttest-data[{"Name":"test-data","Driver":"local","Mountpoint":"/var/lib/docker/volumes/test-data/_data"}]例如,我想在/data中存在docker卷(它安装在不同的物理卷中)。符号链接(symboliclink)无法做到这一点,绑定(bind)挂载可以做到这一点,但我想知道Docker中是否有一些配置可以更改每个单独卷的默认位置。 最佳答案
谁能帮我理解以下之间的区别:Dockerfile中的VOLUME命令(镜像构建层)和发出dockerrun-v/xyz/bla命令时的-v参数(容器构建层).-v参数对我来说很清楚,它只是将一个目录从主机公开到容器,反之亦然,但是DockerfileVOLUME如何行为不同? 最佳答案 -v参数和VOLUME关键字几乎相同。您可以使用-v来获得与VOLUME相同的行为。dockerrun-v/data同VOLUME/data而且-v还有更多用途,其中之一就是映射到卷的位置:dockerrun-vdata:/data#Namedvol