docker – 将文件复制为文件夹

我试图从我的主机复制elasticsearch.yml与启用CORS到使用docker-compose volumes选项的容器。 但是,当我复制configuration文件夹它将其中的elasticsearch.yml文件作为一个文件夹复制。

这是我的docker-compose文件:

version: "3" services: elasticsearch1: container_name: my_container_name image: elasticsearch environment: - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" volumes: - /config/:/usr/share/elasticsearch/config/ ports: - '9200:9200' - '9300:9300' 

这是运行docker-compose的错误消息:

线程“main”中的exceptionSettingsException [无法从/usr/share/elasticsearch/config/elasticsearch.yml加载设置]; 嵌套:IOException [是一个目录];

我也尝试复制到tmp文件夹,文件被列为一个文件夹:

drwxr-xr-x 2 root root 40 Jul 6 08:25 elasticsearch.yml

我究竟做错了什么?

使用适用于Windows的Docker和适用于Mac的Docker,您可以在虚拟机内部运行docker,并将虚拟机内的目录安装到容器中。 当文件或目录不存在于虚拟机内时,Docker会将其作为空文件夹挂载为默认行为(此行为似乎随群集模式而改变)。

要从Windows主机获取文件夹到虚拟机,然后将其映射到容器中,您需要进入Docker设置并configuration共享驱动器:

https://docs.docker.com/docker-for-windows/#shared-drives