113

我使用的是 Windows 10 家庭版操作系统。我已经安装了 Docker 工具箱。

我使用以下命令创建了我的 .net 核心应用程序的 docker 映像。

$  docker build -t helloWorld:core .

现在我想将此图像发送到另一台机器。但我没有得到图像文件。

有人可以告诉我,我的图像将保存在哪里?或者有什么方法可以在 docker build 命令中指定 docker 镜像路径。

4

19 回答 19

78

所有答案对我来说都已过时或不正确,我在"%localappdata%\Docker\wsl"

于 2020-06-21T08:08:45.007 回答
66

答案确实令人困惑,因为在 Windows 中运行 Docker 的方法不止一种。最新的方法是使用 Windows 10 Home 2020 年 5 月更新。它将使用新版本的适用于 Linux 的 Windows 子系统 (WSL2)。这个答案是关于这个配置的。

激活 WSL2后,您将安装Docker Desktop。Docker Desktop 是一个客户端,它将连接到 WSL 内的主机。

图像目录有些不一致。如果您docker info在主机或 WSL 中运行,它将为您提供Docker Root Dir: /var/lib/docker不存在的路径:

$ ls /var/lib/docker
ls: cannot access '/var/lib/docker': No such file or directory

你会在里面找到图片

/mnt/wsl/docker-desktop-data/

或者在这个 Windows 资源管理器路径中:

\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\data\docker\image

如果您使用的是 Windows 10 非家庭版,它的工作方式可能会有所不同。看看其他答案。由于我无权访问此操作系统,因此我不会尝试回答。

于 2020-06-18T02:14:20.423 回答
53

在 Windows 10 上,右键单击系统托盘(任务栏右侧)中的泊坞窗图标,然后选择设置... 在高级窗格中,您将看到如下内容:

在此处输入图像描述

于 2017-11-19T07:22:27.747 回答
46
  1. 通过使用docker info命令。
  2. 在结果中 - 检查Docker Root Dir

此文件夹将包含图像、容器、...

在此处输入图像描述

于 2017-02-15T13:18:45.797 回答
18
于 2020-03-06T07:29:33.477 回答
18

激活Windows 容器后,您的图像默认存储在C:\ProgramData\Docker\

要更改这一点,您可以编辑C:\ProgramData\Docker\config\daemon.json并使用新路径添加一个新"graph"键...(请注意,每个反斜杠都用另一个反斜杠转义)

例子:

{
  "registry-mirrors": [],
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "graph": "D:\\ProgramData\\Docker"
}

之后,您需要重新启动 Docker 服务,您可以使用命令验证您的更改docker info并查看Docker Root Dir条目。

于 2019-02-15T21:24:30.737 回答
10

如果您在 Windows Subsystem for Linux (WSL2) 上使用 docker,您可以通过隐藏共享访问图像:

\\wsl$\docker-desktop-data\version-pack-data\community\docker\overlay2

这些卷也存在于:

\\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes

码头工人版本是20.10.7

在此处输入图像描述

如果您想更深入,docker-desktop-data实际上位于您AppData\Local作为vhdx(虚拟机磁盘)的文件中C:\Users\YOUR_USER_NAME\AppData\Local\Docker\wsl\data\ext4.vhdx

您可以终止 docker 进程并打开ext4.vhdx文件(例如使用 7zip),您可以version-pack-data\community\docker在此文件中看到。

于 2021-06-20T05:54:58.180 回答
8

我的可以在“C:\Users\Public\Documents\Hyper-V\Virtual hard disks”中找到

于 2017-09-22T09:21:47.780 回答
8

我找不到基于 WSL 的 Docker 安装的位置。但是有一个简单的方法是使用 docker 命令本身来获取图像!

docker image save myimagename -o myimagename.tar

这将创建一个存档文件,您可以使用 7zip 或类似程序浏览。

于 2020-10-24T10:15:11.450 回答
6

您可以使用以下命令导出图像并可以将其复制到 linux / 另一台机器 docker export [OPTIONS] CONTAINER

例子:

docker export --output="latest.tar" red_panda
于 2018-10-22T20:41:29.460 回答
6

要将此图像发送到另一台机器:

docker ps -a  
#or docker container ls -a
docker commit <container-id> mynewimage
#start here if you never started your image 
#(ex: if just created using docker build -t helloWorld:core .)
docker image ls
docker save mynewimage > /tmp/mynewimage.tar

在另一台机器上:

docker load < /tmp/mynewimage.tar
docker images

正如上面评论中所解释的,当在带有 linux 容器的 Windows 上工作时,容器驻留在位于 DockerDesktop/settings/advanced/DiskImageLocation 的 docker 磁盘映像中

这里

于 2019-11-17T07:22:51.480 回答
5

在最近使用 WSL 的 Docker 桌面中,Windows 10 中的 docker 映像位置已更改 -

(last tested with Docker Desktop Community version 2.3.0.3)

首先使用运行 - 并输入\\wsl$

这将打开文件资源管理器,并显示如下文件夹 -

  1. docker-desktop
  2. docker-desktop-data

浏览目录以查看所需的文件。确保 docker 桌面正在运行

在此处输入图像描述

于 2021-06-26T17:04:33.880 回答
5

Windows 10 的 docker 桌面已移至此处:

c: <user>/users//AppData/Roaming/Docker/settings.json

于 2019-11-07T16:30:12.307 回答
2

我不知道您为什么要尝试访问该图像,但是您可以使用 docker 命令从中创建一个备份文件,然后将其加载到您希望的位置。例子:

$ docker save -o ubuntu.tar ubuntu:lucid ubuntu:saucy

它将在您的 Windows 主目录中保存一个 tar 文件。要加载它:

$ docker load --input ubuntu.tar
于 2021-02-03T12:13:10.597 回答
1

它应该在这里:

C:\ProgramData\Docker\tmp\
于 2021-03-01T07:12:03.277 回答
1

Docker Desktop 中的容器位置对我来说,当在 Windows 上使用带有 WSL2 的 Docker 桌面时,容器处于下方。

于 2021-06-22T12:02:46.053 回答
0

这对我有用:

%USERPROFILE%/.docker/config.json
于 2021-08-30T21:20:50.247 回答
-1

我在带有 Docker 19.03.8 的 Windows 10 Home Version 2004 上运行。这具有新的 WSL 后端 - 在该配置中,启动 WSL 提示符(Win-r 然后启动 wsl)并且我的图像文件位于 /mnt/host/wsl/docker-desktop-data/data/docker

于 2020-07-05T14:59:40.330 回答
-1

默认情况下,它位于C:\Users\Public\Documents\Hyper-V\Virtual hard disks目录内(.vhdx 文件)。可以在 Docker 的设置 > 高级 > 磁盘映像位置中更改它

于 2020-01-20T02:23:03.800 回答