运行Docker容器时如何将镜像内文件挂载同步到本地系统?
问题根因
-v参数的容器端路径配置错误:你填写的相对路径node-example-1没有指向镜像内的实际代码存放路径,该镜像的代码默认存储在绝对路径/app下。- 绑定挂载的逻辑不符合预期:直接使用本地路径到容器路径的绑定挂载时,如果本地目录为空,Docker会默认用本地空目录覆盖容器对应路径的内容,而非将容器内文件同步到本地,这是你本地无文件的核心原因。
正确实现步骤
- 先通过临时容器将镜像内的代码拷贝到本地目录:
# 启动临时容器 docker run -d --rm --name node-temp academind/node-example-1 # 拷贝容器内/app目录下所有文件到本地目标文件夹 docker cp node-temp:/app/ /Users/souravbanerjee/Documents/node-docker/ # 停止临时容器(配置了--rm参数,停止后会自动删除) docker stop node-temp
- 拷贝完成后再执行带挂载的启动命令,容器端路径替换为正确的绝对路径:
docker run -d --rm --name node-test -p 5000:80 -v /Users/souravbanerjee/Documents/node-docker:/app academind/node-example-1
完成上述操作后,本地node-docker目录与容器内/app目录会实现双向同步,修改本地文件会实时同步到容器内。
内容的提问来源于stack exchange,提问作者Livetuts Bj
相关产品推荐
相关产品推荐

