我试图理解——也许我已经做过,也许没有——文件之间的区别volumes_from和volumes用法docker-compose.yml。我已经阅读过文档,但从那里开始对我来说不是很清楚,所以我正在做一个真正的练习。
我有以下设置:
- 一个根目录
- 以根目录命名
php-apache的目录Dockerfile - 以根目录命名
mongo的目录Dockerfile docker-compose.yml根目录下的文件
注意:如果您不清楚,请看这里,下面暴露的所有内容也都在那里(
mongodb-test分支)
在
php-apache/Dockerfile我有以下条目:VOLUME /data /data在
mongo/Dockerfile我有以下条目:VOLUME /data/db /data/configdb在
docker-compose.yml我有以下内容:version: '2' services: php-apache: container_name: "php55-dev" image: reynierpm/php55-dev ports: - "80:80" environment: PHP_ERROR_REPORTING: 'E_ALL & ~E_DEPRECATED & ~E_NOTICE' volumes: - ~/mmi:/var/www volumes_from: - volumes_data mongo: container_name: "mongodb" image: reynierpm/mongodb ports: - "27017:27017" volumes_from: - volumes_data volumes_data: image: tianon/true volumes: - ~/data/mongo:/data/db - ~/data:/data
这是我从该设置中理解的:
- 图像
reynierpm/php55-dev将公开一个/data目录,并将映射到~data:/data图像tianon/true中 - 图像
reynierpm/mongodb将 a 暴露/data/db给外部并映射到/data/configdb内部,然后/data/db映射到~/data/mongo:/data/db图像中tianon/true。
现在我脑子里一团糟,因为我想要实现的是以下目标:
- 保持将主机上的代码映射到容器(这一
<path_on_host>:/var/www行在docker-compose.yml) - 将数据保存在主机的本地目录中
所以,我在做什么没问题?由于我仍在学习,请随意对此设置进行任何修改。