Pag*_*und 5 docker docker-compose
这是docker-compose.ymlMEAN.js 中的文件。任何人都可以解释为什么将 web-data 和 db-dataentrypoint设置为?/bin/true有这个必要吗?如果我删除它会发生什么?非常感谢。
版本:'2'
服务:
网址:
重新启动:始终
建造: 。
容器名称:meanjs
端口:
- “3000:3000”
- “5858:5858”
- “8080:8080”
- “35729:35729”
环境:
- NODE_ENV=开发
- DB_1_PORT_27017_TCP_ADDR=db
依赖于取决于:
- D b
卷_来自:
- 网络数据
网络数据:
建造: 。
入口点:/bin/true
卷:
- ./:/opt/mean.js
- /opt/mean.js/node_modules
- /opt/mean.js/public
- /opt/mean.js/uploads
D b:
图片:蒙戈:3.2
重新启动:始终
端口:
- “27017:27017”
卷_来自:
- 数据库数据
数据库数据:
图片:蒙戈:3.2
卷:
- /数据/数据库
- /var/lib/mongodb
- /var/log/mongodb
入口点:/bin/true
这是 Docker-compose 的旧版本。这样做的原因是启动一个容器,该容器创建卷然后退出。
所以下面启动一个容器并存在
db-data:
image: mongo:3.2
volumes:
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
entrypoint: /bin/true
Run Code Online (Sandbox Code Playgroud)
在该容器内创建这些卷路径。
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
Run Code Online (Sandbox Code Playgroud)
然后mongo用来volumes_from在这个容器中存储数据
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes_from:
- db-data
Run Code Online (Sandbox Code Playgroud)
volumes_fromCompose 3.X 中并未弃用,也不应使用。相反,您应该使用命名或匿名卷。
因此,撰写内容将更改为如下所示
匿名卷
version: '3.3'
....
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes:
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
Run Code Online (Sandbox Code Playgroud)
命名卷
version: '3.3'
....
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes:
- mongodata:/data/db
- mongodata:/var/lib/mongodb
- mongodata:/var/log/mongodb
volumes:
mongodata: {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1380 次 |
| 最近记录: |