为什么入口点设置为';bin/true';在docker-compose.yml中
这是MEAN.js中的为什么入口点设置为';bin/true';在docker-compose.yml中,docker,docker-compose,Docker,Docker Compose,这是MEAN.js中的docker compose.yml文件。谁能解释一下为什么web数据和db数据的入口点设置为/bin/true?这有必要吗?如果我移除它会发生什么?非常感谢 version: '2' services: web: restart: always build: . container_name: meanjs ports: - "3000:3000" - "5858:5858" - "8080:8080"
docker compose.yml
文件。谁能解释一下为什么web数据和db数据的入口点设置为/bin/true
?这有必要吗?如果我移除它会发生什么?非常感谢
version: '2'
services:
web:
restart: always
build: .
container_name: meanjs
ports:
- "3000:3000"
- "5858:5858"
- "8080:8080"
- "35729:35729"
environment:
- NODE_ENV=development
- DB_1_PORT_27017_TCP_ADDR=db
depends_on:
- db
volumes_from:
- web-data
web-data:
build: .
entrypoint: /bin/true
volumes:
- ./:/opt/mean.js
- /opt/mean.js/node_modules
- /opt/mean.js/public
- /opt/mean.js/uploads
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes_from:
- db-data
db-data:
image: mongo:3.2
volumes:
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
entrypoint: /bin/true
版本:“2”
服务:
网状物:
重新启动:始终
生成:。
容器名称:meanjs
端口:
- "3000:3000"
- "5858:5858"
- "8080:8080"
- "35729:35729"
环境:
-节点_ENV=开发
-DB_1_端口_27017_TCP_地址=DB
取决于:
-分贝
卷从:
-网络数据
网络数据:
生成:。
入口点:/bin/true
卷数:
-./:/opt/mean.js
-/opt/mean.js/node_模块
-/opt/mean.js/public
-/opt/mean.js/uploads
db:
图片:mongo:3.2
重新启动:始终
端口:
- "27017:27017"
卷从:
-数据库数据
数据库数据:
图片:mongo:3.2
卷数:
-/data/db
-/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
在该容器中创建这些卷路径
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
然后mongo使用
中的volumes\u将数据存储在此容器中
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes_from:
- db-data
来自
的卷在Compose 3.X中没有被弃用,不应使用。相反,您应该使用匿名卷的命名名称
因此,组合将更改为如下所示
匿名卷
version: '3.3'
....
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes:
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
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: {}
命名卷
version: '3.3'
....
db:
image: mongo:3.2
restart: always
ports:
- "27017:27017"
volumes:
- /data/db
- /var/lib/mongodb
- /var/log/mongodb
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: {}
谢谢@Tarun Lalwani,但我看到版本2也支持您在版本3示例中提到的卷方法,为什么不在版本3中使用这种直接方式?因为这两种功能都是有效的。这是一个选择的问题。但是,有时来自
的卷会非常有用。就像在on case中一样,我们曾经有一个带有主机映射卷的应用程序容器。我们将使用此容器中的volumes\u运行另一个容器,进行一些构建,它将自动将我们的文件放置在另一个容器中。这有助于我们避免14-15个装载条目在两侧重复。不是版本“3”不允许这样。因此,根据您的思维过程和方法,您可以使用
volumes
或Tarun中的volumes\u,谢谢您的详细解释,这非常有用。@PageNotFind如果您认为某个答案解决了您的问题,您可以通过单击答案分数下的复选标记将其标记为已接受。这样其他人就知道问题已经解决了。有关它的更多信息,请参阅。