Docker 无法在现有文件上挂载卷

Add*_*ddy 5 docker docker-compose

我在 AWS Linux 实例上执行此操作

Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5/1.9.1
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5/1.9.1
 Built:
 OS/Arch:      linux/amd64
Run Code Online (Sandbox Code Playgroud)

每当我尝试docker-compose up -d使用以下 docker-compose.yml (这是摘录)

elasticsearch:
  image: elasticsearch:2.1.1
  command: elasticsearch
  ports:
  - "9200:9200"       
  - "9300:9300"
  volumes:
  - ./elk/es/staging.yml:/etc/elasticsearch/elasticsearch.yml
  links: 
  - kibana
  volumes_from:
  - es-data

es-data:
  image: elasticsearch:2.1.1
  command: "true"
  volumes:
  - /usr/share/elasticsearch/
  - /etc/default/elasticsearch
  - /var/lib/elasticsearch/
  - /var/log/elasticsearch
Run Code Online (Sandbox Code Playgroud)

我会收到这个错误:

Recreating es-data_1
ERROR: cannot mount volume over existing file, file exists /var/lib/docker/devicemapper/mnt/33111596cd765c4220c65ea7cc35df4a6c295a860e4ad94294c7ee985da6ea7c/rootfs/etc/default/elasticsearch
Run Code Online (Sandbox Code Playgroud)

我尝试通过从 es-data 中删除卷来绕过此错误,但这并不理想,因为我将其用作仅数据容器。

我尝试使用 删除系统上可用的所有卷docker volume rm $(docker volume ls -q),但这会删除除我不确定如何强制删除的卷之外的所有卷。

理想的情况是允许我重用该卷(我假设此时它是孤立的)。第二种理想情况是能够删除该卷并能够创建一个新卷。

如果我在我的个人机器上执行此操作,我会采取更简单的方法重新创建我正在使用的 docker 机器,但我不想在我的 AWS 实例上执行此操作。