Docker编写,可以在已安装的卷中安装文件夹吗?

时间:2017-10-16 15:41:28

标签: docker docker-compose

使用compose进行开发时,我将我的应用程序安装在/ var / www / html中:

volumes:
- ./app:/var/www/html

我的本​​地副本需要生产网站上的所有图片,这些图片非常多,所以我不想将它们存储在我的小ssd中,而是存放在一个大的外部磁盘中。

所以我的图片位于我的/ media / storage / bigdisk / images。

可以在已安装的/ var / www / html中安装此位置吗?

这种方式似乎不起作用:

volumes:
  - ./app:/var/www/html
  - /media/storage/bigdisk/images:/var/www/html/images

1 个答案:

答案 0 :(得分:0)

这应该正常工作,这个解决方案唯一的缺点是docker会在./app/images中创建额外的目录 - 所以它可以挂载图像卷。

对于这个目录树:

- app
--- index.php
- docker-compose.yml
- media
--- picture.png

docker-compose.yml

version: '2'

services:
  app:
    image: ubuntu
    volumes:
      - ./app:/var/www/html
      - ./media:/var/www/html/images

你得到:

$ docker-compose run --rm app find /var/www/html
/var/www/html
/var/www/html/index.php
/var/www/html/images
/var/www/html/images/picture.png

即使./app/images目录在本地存在某些内容,这也有效。如果它不存在,则docker在那里创建空目录root:root persmission(如果容器以root身份运行)。

Docker version 1.12.6docker-compose version 1.8.0

上进行了测试
相关问题