是否可以使用VSCode的远程开发扩展在容器外部的本地操作系统中打开Docker容器中的文件(如在VSCode的远程WSL扩展中使用右键单击“打开资源管理器”)
我试着:
要构建没有上下文,我可以使用docker build - < Dockerfile
(参见码头医生)。
我可以通过docker run -v <path-to-file-in-host>:<path-to-file-in-container> IMAGE_NAME
(如所讨论的这里和码头医生来了)挂载文件。
从devcontainer.json参考中可以将构建args传递到devcontainer.json中的Docker构建,但是这并不适用于- <
,因为vscode-dev容器默认包含构建上下文.
这个扩展还会在构建后自动运行一个容器,所以我不知道如何覆盖它。
任何提示都将不胜感激!
发布于 2020-09-04 04:59:06
默认情况下,TL;DR开发容器扩展(截至2020年10月22日)将文件从本地操作系统绑定到容器,以便能够在本地操作系统上打开它们。
为了更快地绑定安装(在docker build .
步骤中跳过docker build .
),忽略.dockerignore
中的所有内容&在.devcontainer/devcontainer.json
中指定绑定挂载以将文件系统挂载到容器。
.
├── .devcontainer/devcontainer.json
├── .dockerignore
├── .git
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── data
├── src
└── tests
.dockerignore
# Ignore everything
**
.devcontainer/devcontainer.json
{
...
"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/workspace,consistency=delegated",
"workspaceFolder": "/workspace"
...
}
(备用计划) docker cp
还可以使用docker cp
将文件复制到容器内外;如果容器的数据文件夹中有csv
或txt
文件,我想在本地操作系统上查看这些文件,则可以运行:
docker cp 12890c3a2602:/workspaces/drem/data/commercial_building_benchmarks comm_bldg_bmarks
其中12890c3a2602
是我的容器id,/workspaces/drem/data/commercial_building_benchmarks
是我容器内数据文件夹的路径,comm_bldg_bmarks
是我本地操作系统上目标文件夹的名称。更多信息见将文件复制到或从Docker容器中复制 ..。
https://stackoverflow.com/questions/63703468
复制