我试图理解——也许我已经做过,也许没有——文件之间的区别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
) - 将数据保存在主机的本地目录中
所以,我在做什么没问题?由于我仍在学习,请随意对此设置进行任何修改。