mus*_*sme 14 docker docker-compose
我有一个docker-compose.yml包含以下内容的文件:
volumes:
- .:/usr/app/
- /usr/app/node_modules
Run Code Online (Sandbox Code Playgroud)
第一个选项将当前主机目录映射到/usr/app,但第二个选项的作用是什么?
Wil*_*lva 21
根据Docker的知识库,只是为了补充已接受的答案,有三种类型的卷:主机,匿名和命名:
一个主机卷住在泊坞主机的文件系统,可以从容器中进行访问.示例卷路径:
/path/on/host:/path/in/container
一个匿名的体积是当你宁愿泊坞窗把手在文件存储有用.但是,当它是匿名卷时,可能很难引用相同的卷.示例卷路径:
/path/in/container
一个名为体积类似于一个匿名的体积.Docker管理磁盘创建卷的位置,但是为其指定卷名.示例卷路径:
name:/path/in/container
您的示例中使用的路径是匿名卷.
第二个创建一个匿名卷.它将docker volume ls以长唯一ID而不是名称列出.如果你更新你的图像,Docker-compose将能够重用它,但是很容易忘记哪个卷属于那些名称,所以我建议总是给你的卷命名.
在阅读本教程时,我也遇到了同样的问题,这些行实际上可以做什么的答案是:
如果没有匿名卷('/usr/src/app/node_modules'),node_modules 目录实际上会通过在运行时安装主机目录而消失:
Build - 创建 node_modules 目录。
运行- 当前目录被复制到容器中,覆盖容器构建时刚刚安装的node_modules。
docker-compose.yml为此的文件:
version: '3.5'
services:
something-clever:
container_name: something-clever
build:
context: .
dockerfile: Dockerfile
volumes:
- '.:/usr/src/app'
- '/usr/src/app/node_modules'
ports:
- '4200:4200'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3044 次 |
| 最近记录: |