是否可以使用Remote Development extension for VSCode在容器外部的本地操作系统的Docker容器中打开文件 (例如,像在Remote - WSL extension for VSCode中一样,右键单击“在资源管理器中打开”)
我试图:
要在没有上下文的情况下进行构建,可以使用docker build - < Dockerfile
(请参阅docker docs)。
我可以通过docker run -v <path-to-file-in-host>:<path-to-file-in-container> IMAGE_NAME
挂载文件(如here和docker docs here中所述)
可以从devcontainer.json reference中将build args传递到devcontainer.json中的Docker build中,但这不适用于- <
,因为vscode-dev-containers默认包含构建上下文。
扩展程序还会在构建后自动运行容器,因此我不确定如何覆盖它。
任何提示将不胜感激!
答案 0 :(得分:0)
TL; DR 默认情况下,dev-containers扩展(自2020年10月22日开始)将安装文件从本地OS绑定到容器,以便可以在本地OS上打开文件。
要进行更快的绑定安装(在Sending build context to docker daemon...
步骤中跳过docker build .
,请忽略.dockerignore
中的所有内容,并在.devcontainer/devcontainer.json
中指定bind mount以将文件系统安装到容器。
.
├── .devcontainer/devcontainer.json
├── .dockerignore
├── .git
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── data
├── src
└── tests
.dockerignore
# Ignore everything
**
.devcontainer/devcontainer.json
来自Changing or removing the default source code mount
{
...
"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/workspace,consistency=delegated",
"workspaceFolder": "/workspace"
...
}
docker cp
还可以使用docker cp
将文件复制进出容器;如果我想在本地操作系统上的Excel中查看容器数据文件夹中的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
是我的本地操作系统上目标文件夹的名称。有关更多信息,请参见Copying Files To And From Docker Containers ...