Linux 将目录装载到Docker中的命名卷
我希望我的项目的源代码可以通过命名卷访问(而不是使用bind mount方法)。但我有一个困惑,我不知道如何将主机目录装载到命名卷。因此,我在docker-compose.yml中定义了一个卷:Linux 将目录装载到Docker中的命名卷,linux,docker,containers,Linux,Docker,Containers,我希望我的项目的源代码可以通过命名卷访问(而不是使用bind mount方法)。但我有一个困惑,我不知道如何将主机目录装载到命名卷。因此,我在docker-compose.yml中定义了一个卷: volumes: appData: services: nginx: . . . volumes: - appData:/usr/share/data 一切正常,但我应该如何将主机文件添加到命名卷?而当。不幸的是,没有像现
volumes:
appData:
services:
nginx:
.
.
.
volumes:
- appData:/usr/share/data
一切正常,但我应该如何将主机文件添加到命名卷?而当。不幸的是,没有像现在这样直截了当的方法来实现这一点。Docker文档建议在这种情况下使用绑定挂载或第三方卷插件。看不到任何近期的计划来实施同样的计划 但是,您可以用另一种方式手动执行-
$docker volume create${PROJECTNAME}\u appData
$ docker container create --name dummy -v ${PROJECTNAME}_appData:/root alpine #Create
$ docker cp ${PWD}/source_myfile.txt dummy:/root/myfile.txt #copy
$ docker run -v ${PROJECTNAME}_appData:/root alpine ls -l /root #Verify
docker compose up-d
时,它将跳过创建卷,因为它已经存在
PS-我知道这不是一个标准的解决方案,但这是我能找到的所有快速解决方案。对于永久性修复,您可以使用第三方卷插件。获取有关该问题的更多详细信息-
Ref-为什么您特别希望将源代码存储在卷中,而不是将其构建到映像中?你为什么特别希望它出现在命名卷中?@DavidMaze你说得对。我发现我的方法有问题。