Docker卷不会删除文件

时间:2017-12-28 11:38:30

标签: docker docker-compose docker-container docker-volume

我们正在使用docker volume来存储docker主机文件夹中的一些静态文件。当我重新启动容器时,在主机目录中更新/添加的文件我可以看到docker volume中的更改。 但是,当我从主机删除文件时。该文件未被删除。我必须使用docker volume,因为这是一个可共享的资源。 以下是我的docker撰写文件

version: '2'
volumes:
  test-volume: {}
services:
  test:
    image: test-volume:test1
    volumes:
      - test-volume:/var/myapp
  test-gateway:
    image: test-gateway:latest
    ports:
      - "8080:80"
    volumes_from:
      - test
    volumes:
      - ./test-gateway/conf.d:/etc/nginx/conf.d
    environment:
      - SITE_ROOT=root
      - SITE_ROOT_ROUTE_FROM=/
      - SITE_ROOT_ROUTE_DIRECTORY=/var/myapp/static

因此,如果我从myapp中删除任何文件并重新启动docker容器,则该文件不会从docker卷中删除。

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:0)

在撰写文件时,您正在创建命名卷test-volume。此卷是testtest-gateway服务中的引用。

此卷与docker主机上的文件夹无关。因此,您无法删除主机上的文件,并希望这将反映在您的命名卷中。

如果您要在docker主机上映射文件夹,则需要使用用于映射conf.d文件的语法。

volumes:
  - ./some_folder_on_host:/some_folder_in_container