将docker容器内容映射到宿主机上
为了避免挂载卷后出现空文件夹的问题,建议在挂载之前手动复制容器内的文件到宿主机,或者先在宿主机上准备好需要的文件,这样可以确保在挂载卷后,你能够正确地在宿主机上查看和编辑这些文件。
如果配置了卷映射后,宿主机上的 /www/wwwroot/openim-server 目录为空,这通常是因为:
-
目录优先级问题:当 Docker 启动容器时,如果宿主机上的目录已经存在且为空,会将容器内对应目录的内容隐藏,只有宿主机上的文件可见。因此,如果宿主机上的
/www/wwwroot/openim-server目录为空,它会覆盖容器内/openim-server目录的内容,使你在宿主机上看到的是一个空文件夹。 -
初始目录内容未同步:当宿主机目录挂载到容器时,容器内的内容不会自动复制到宿主机上。换句话说,如果你希望在宿主机上看到容器内的文件,必须手动复制这些文件到宿主机目录中。
解决方法
你可以选择以下两种方法之一来解决这个问题:
方法 1: 先手动复制容器内的文件到宿主机
-
启动容器,不挂载卷:先启动容器,不配置
volumes,让容器内的/openim-server目录保持不变。docker-compose up -d -
进入容器并复制文件到宿主机:
docker cp openim-server:/openim-server /www/wwwroot/openim-server -
修改
docker-compose.yml,重新添加卷映射:volumes: - /www/wwwroot/openim-server:/openim-server -
重启容器:
docker-compose down docker-compose up -d
方法 2: 在宿主机上准备好文件夹内容
-
在宿主机上准备好文件内容:将你希望容器使用的文件手动放到
/www/wwwroot/openim-server目录中。 -
启动容器,卷映射后生效:再次启动容器时,宿主机上的文件会覆盖容器内的文件。
总结
为了避免挂载卷后出现空文件夹的问题,建议在挂载之前手动复制容器内的文件到宿主机,或者先在宿主机上准备好需要的文件,这样可以确保在挂载卷后,你能够正确地在宿主机上查看和编辑这些文件。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)