什么是Windows 10上的docker镜像位置

时间:2017-02-15 13:04:46

标签: docker docker-compose docker-for-windows docker-windows docker-on-windows

我正在使用Windows 10 Home操作系统。 我已经安装了Docker工具箱。

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

$  docker build -t helloWorld:core .

现在我想将此图片发送到其他机器。但我没有得到图像文件。

有人可以告诉我,我的图片会保存在哪里吗?或者有什么办法,在docker build命令中指定docker image path。

18 个答案:

答案 0 :(得分:24)

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

enter image description here

答案 1 :(得分:24)

答案确实令人困惑,因为在Windows中运行Docker的方式不止一种。最新方法是Windows 10 Home May 2020 Update。我将使用Linux的Windows子系统(WSL2)的新版本。

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

图像目录有些不一致。如果您在主机或WSL中运行docker info,它将为您提供路径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非家庭版,则可能会有所不同。看看其他答案。由于我无权访问此操作系统,因此我不会尝试回答。

答案 2 :(得分:9)

对我来说,所有答案都已过时或不正确,我在%AppData%\Local\Docker\wsl中找到了答案

答案 3 :(得分:9)

如果您在Windows 10上并且正在运行Windows容器

docker running windows containers

在上图中,docker正在运行Windows容器。因此,显示切换到linux容器。

首先运行docker info命令(更具体的docker info --format “{{json .DockerRootDir}}”)。

您应该将根目录视为

Docker根目录:C:\ ProgramData \ Docker

现在运行命令以拉出类似图像

docker pull hello-world

拉出映像后,您可以查看docker根目录。

注意当前的修改日期时间。在其中一个文件夹中,您可以看到图层的阴影。

Docker location on windows

最后,如果您想知道图像的下载位置,则还必须查看以下文件夹。上方和下方的两个文件夹是

  • C:\ ProgramData \ Docker \ image \ windowsfilter
  • C:\ ProgramData \ Docker \ windowsfilter

Docker location

现在可用于linux映像。

如果您的码头工人正在运行Windows容器,然后尝试获取基于Linux的容器(例如nginx),就像这样

docker pull nginx:latest

您将收到如下消息。

latest: Pulling from library/nginx
no matching manifest for windows/amd64 10.0.18363 in the manifest list entries

因此切换到Linux容器。看到第一张图片。

用于Linux的docker运行后,再次运行命令。

docker pull nginx:latest

您可以看到该图像正在下载。

现在此映像从哪里下载到您的硬盘上?在这种情况下,docker info命令可能无济于事。

所以重新开始。单击设置,而不是“切换到Windows容器...”

Settings On Docker Desktop for linux containers

现在查看路径。

Settings Page on docker desktop showing the path

在我的计算机上,它是C:\ProgramData\DockerDesktop\vm-data

LinuxImages location

请注意修改日期列。注意并观察到,在拉出或删除基于Linux的映像之后。

这是为Linux env保留的磁盘空间,因此您将无法进一步浏览以查看映像所在的位置。

但如果需要,则启动基于Linux的VM,安装docker并探索路径 / var / lib / docker /

有时您可能会遇到权限问题。如果是这样,请参见thisthis

答案 4 :(得分:8)

  1. 使用docker info命令。
  2. 在结果中 - 检查 Docker Root Dir
  3. 此文件夹将包含图像,容器......

    enter image description here

答案 5 :(得分:7)

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

答案 6 :(得分:2)

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

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

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

$ docker load --input ubuntu.tar

答案 7 :(得分:2)

如果您在 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

docker 版本为 20.10.7

enter image description here

答案 8 :(得分:1)

激活 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条目。

答案 9 :(得分:1)

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

示例:

--force

答案 10 :(得分:1)

它应该在这里:

$ curl -k -X POST https://localhost:5001/xml -d '<foo>bar</foo>' -i --header "Content-Type: text/xml" 

$ curl -k -X POST https://localhost:5001/xml -d '<foo>bar</foo>' -i --header "Content-Type:application/xml" 

答案 11 :(得分:0)

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

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磁盘映像内。

请参阅here

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

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

docker image save myimagename -o myimagename.img

这将直接为您创建一个图像文件。

答案 14 :(得分:0)

对我来说,在 Windows 上使用 WSL2 的 Docker 桌面时,容器位于 container location in Docker Desktop 之下。

答案 15 :(得分:0)

在最近使用 WSL 的 Docker 桌面中,位置已更改 -

(last checked with Docker Desktop Community version 2.3.0.3)

首先使用 Run - 并输入 \\wsl$

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

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

浏览目录以查看所需文件。

enter image description here

答案 16 :(得分:-1)

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

答案 17 :(得分:-1)

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