遇到的问题
docker镜像在运行过程中会产生新的文件。我想把这个在容器中的新文件挂载到宿主机上方便查看和保留。在docker-compose.yml写法如下:
volumes:
- ./sample.txt:/code/sample.txt
# sample.txt是运行生成的新文件。/code是它在容器中的路径
然后结果却生成了两个文件夹sample.tex,分别在宿主机上和容器中,导致程序后续无法正常运行
问题的原因
容器启动时,如果容器和宿主机中均没有挂载的文件,则默认生成文件夹
以上是docker对上诉挂载问题的处理办法,因为新文件是在运行过程中生成的,宿主机也没有对应文件,所以结果上来说是正常的
解决的办法
一,在宿主机上事先生成新文件(推荐)
理解起来也很简单,问题原因就是两端都没有文件,没有挂载点导致的,所以默认生成两个文件夹。现在给宿主机上事先生成新文件,就形成了特定的挂载关系。操作如下:
touch sample.txt #docker-compose.yml同级目录下执行
docker-compose up -d ImageName #正常启动容器
其余不用修改,包括Dockerfile和docker-compose.yml等
二,在容器中添加文件</