在一个容器里
可以创建匿名卷
在语法(VOLUME /build)中Dockerfile
VOLUME /build
Dockerfile
要么
volumes具有/build输入的以下语法
volumes
/build
cache: build: ../../ dockerfile: docker/dev/Dockerfile volumes: - /tmp/cache:/cache - /build entrypoint: "true"
我的理解是,/build在容器进入Exited状态后,两种方法都可以使音量也可用。
Exited
卷是匿名的,因为/build指向/var/lib/docker/volumesDocker主机中某个随机的新位置(目录中)
/var/lib/docker/volumes
我看到匿名卷比命名卷(如/tmp/cache:/cache)更安全。
/tmp/cache:/cache
因为/tmp/cache位置很容易受到攻击,因为该位置被多个Docker容器使用的可能性更大。
/tmp/cache
1)
为什么不鼓励匿名使用卷?
2)
是
VOLUME /build 在 Dockerfile
与…不同
volumes: - /build
在docker-compose.yml文件中?是否有一种情况,我们需要同时提及两者?
docker-compose.yml
实际上,鼓励/build使用匿名卷()而不是使用绑定装载():/tmp/cache:/cache
与绑定安装相比,卷具有几个优点: 与绑定安装相比,卷更易于备份或迁移。 您可以使用Docker CLI命令或Docker API管理卷。 卷在Linux和Windows容器上均可工作。 可以在多个容器之间更安全地共享卷。 卷驱动程序使您可以将卷存储在远程主机或云提供商上,以加密卷内容或添加其他功能。 新卷的内容可以由容器预先填充。
与绑定安装相比,卷具有几个优点:
关于第二个问题,是的。您可以在docker-compose文件或Dockerfile中创建匿名卷。无需在两个地方都指定。