Skip to main content
 首页 » 编程设计

Docker compose,是否可以在已安装的卷中安装文件夹

2024年02月24日16JeffreyZhao

当使用 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 

请您参考如下方法:

这应该可以正常工作,该解决方案的唯一缺点是 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权限(如果容器以 root 身份运行)。

Docker version 1.12.6 上测试和docker-compose version 1.8.0