Где находится образ докера в Windows 10?

Я использую операционную систему Windows 10 Home. Я установил панель инструментов Docker.

Я создал образ докера своего основного приложения .net, используя следующую команду.

$  docker build -t helloWorld:core .

Теперь я хочу отправить это изображение на другую машину. Но я не получаю файл изображения.

Подскажите, пожалуйста, где будет сохранено мое изображение? Или есть ли способ указать докеру путь к изображению в команде сборки докера.


person Purnima Naik    schedule 15.02.2017    source источник
comment
Вы проверили: C: \ Users \ Public \ Documents \ Hyper-V \ Virtual hard disks \ MobyLinuxVM.vhdx? Я нахожу там свой. Спасибо, что задали вопрос. @ purnima-naik   -  person nkhuyu    schedule 30.04.2017


Ответы (18)


В Windows 10 щелкните правой кнопкой мыши значок докера на панели задач (правая часть панели задач) и выберите «Настройки» ... На панели «Дополнительно» вы увидите что-то вроде:

введите описание изображения здесь

person John    schedule 19.11.2017
comment
Можно получить этот путь в меню дополнительных настроек, но этот путь не существует в моей файловой системе, несмотря на то, что он настроил отображение скрытых и системных файлов и папок! - person kmarabet; 30.07.2018
comment
Возможно, это местоположение файла предназначено только для изображений Windows, в то время как у меня есть только изображения Linux, загруженные в мою локальную платформу докеров! - person kmarabet; 30.07.2018
comment
В последнее время расширенная вкладка, похоже, недоступна в последней версии. - person Justin Helgerson; 01.11.2018
comment
@kmarabet попробуйте Public Documents вместо Documents в пути - person shwz; 09.11.2018
comment
@shwz ты прав, там есть hyper-v ... но он доступен только админке ... облом - person Imad; 18.04.2019
comment
@JustinHelgerson Вы получаете расширенную опцию только тогда, когда docker использует контейнеры Linux. Для контейнера Windows вы можете перейти в настройки Docker - ›Вкладка Daemon слева -› Нажмите кнопку переключения Advance и обновите файл JSON, указав корень данных: E: \\ DockerContainers. - person Matt; 18.06.2019
comment
Я использую последнюю бесплатную версию Docker в Windows 10 (контейнеры linux), и я могу изменить место хранения изображений, указав Disk image location, расположенный на вкладке Advanced в настройках Docker. Только что обновил мой, и Docker потребовал перезапуска. ВОЙЛА, он больше не съедает мои SSD-диски C. - person jet_choong; 04.09.2019
comment
@Matt Я использую Docker v19.03.8 в Windows 10 и контейнерах Windows, и слева нет вкладки Daemon. Есть только Общие, Ресурсы, Движок Docker и Командная строка. - person Jean-François Beauchamp; 09.06.2020
comment
@ Jean-FrançoisBeauchamp, Не уверен насчет конкретной версии, видите ли вы вкладки, упомянутые в статье medium.com/@matt.thankachan/. Также посмотрите, можете ли вы изменить его через файл json - person Matt; 10.06.2020
comment
Для v19.03.8 проверьте вкладку Docker Engine. - person Matt; 10.06.2020
comment
Похоже, они переместили это в другое место. - person Ashley; 24.08.2020

Ответы действительно сбивают с толку, потому что есть несколько способов запустить Docker в Windows. Новейший способ - Windows 10 Home May 2020 Update. Я буду использовать новую версию подсистемы Windows для Linux (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, она может работать иначе. Взгляните на другие ответы. Поскольку у меня нет доступа к этой ОС, я не буду отвечать.

person neves    schedule 18.06.2020
comment
Думаю, это единственно правильный ответ для WSL2. Конечно, есть в моей системе. - person drkvogel; 16.01.2021
comment
Действительно полезно! - person Antonio Sanchez; 10.02.2021
comment
Теперь путь \\ wsl $ \ docker-desktop-data \ mnt \ wsl \ docker-desktop-data \ data \ для меня пуст, хотя docker info говорит, что у меня 4 изображения. - person Alexandr Zarubkin; 21.04.2021
comment
У меня та же проблема, что и у @AlexandrZarubkin. - person khtad; 13.06.2021

  1. Используя команду docker info.
  2. В результате - проверяем Docker Root Dir

Эта папка будет содержать изображения, контейнеры, ...

введите описание изображения здесь

person evgenyl    schedule 15.02.2017
comment
На моем компьютере с Windows 10 я получил этот путь к корневому каталогу Docker: / mnt / sda1 / var / lib / docker, которого нет на моем компьютере. - person Purnima Naik; 15.02.2017
comment
Вы используете Docker или Docker Toolbox? Судя по журналам, похоже, что вы используете Docker-Toolbox, который запускает виртуальную машину Linux для docker-машины. В этом случае - подключитесь к докер-машине и перейдите в эту указанную папку - person evgenyl; 15.02.2017
comment
Мой корневой каталог / var / lib / docker. Могу ли я перейти к этой папке через проводник? - person Mike Casas; 01.02.2018
comment
@MikeCasas Возможно, вы используете контейнеры Linux, просто щелкните правой кнопкой мыши значок докера и выберите Switch to Windows containers... - person Tony Chou; 24.06.2018
comment
@TonyChou, нет, я хочу продолжить работу с Linux. Просто интересно, могу ли я перейти к папке. - person Mike Casas; 25.06.2018
comment
Почему невозможно получить хорошую информацию о докере ?? Это так неприятно! Как и люди выше, я запускаю контейнеры linux на машине с Windows 10, и я не могу понять, в каком волшебном докере местоположения хранятся контейнеры. - person lite-whowantstoknow; 22.08.2018
comment
Если у вас есть контейнеры Linux на компьютере с Windows 10, контейнеры хранятся в файле MobyLinuxVM.vhdx. Вы не можете смонтировать или исследовать этот файл AFAIK, но вы все равно можете перечислить контейнеры внутри этой машины, используя этот трюк с «синей таблеткой» blog.jongallant.com/2017/11/ssh-into-docker-vm-windows по умолчанию контейнеры хранятся в Linux-пути / var / lib / docker на этой виртуальной машине (вы можете подтвердить этот путь linux с помощью команды docker info) - person Simon Mourier; 29.08.2018
comment
Я не могу найти путь к корневому каталогу Docker: / var / lib / docker на моем компьютере - person MangduYogii; 06.03.2019
comment
Во-первых, проверьте, используете ли вы контейнеры Windows, так как это просто работает для них (контейнеры Windows - это не то же самое, что запускать докер в окне, нормально?). Если вы используете контейнеры Linux, изображения находятся в WSL, поэтому вы должны проверить, находятся ли они в виртуальном файле, расположенном в% AppData% \ Local \ Docker \ wsl \ data \ - person JoeyGutMen; 12.02.2021

Все ответы для меня устарели или неверны, нашел в %AppData%\..\Local\Docker\wsl

person user1073075    schedule 21.06.2020
comment
И это должен быть принятый ответ. Файл ext4.vhdx находится в:% AppData% \ Local \ Docker \ wsl \ data - person Tomislav; 13.07.2020
comment
Я этого не понимаю. Я ожидаю файл докера или что-то вроде файла json или yml. Как я могу изменить значения конфигурации, например. для подключения db? - person Čamo; 18.01.2021
comment
% AppData% \ Local \ ... не существует, нашел его в% LocalAppData% \ Docker \ wsl - person fuchs777; 18.03.2021

Когда у вас активированы Контейнеры 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.

person JavierFuentes    schedule 15.02.2019
comment
Хавьер прав. Вы получаете расширенную опцию только тогда, когда докер использует контейнеры Linux. Также я считаю, что мы используем корень данных для предоставления местоположений изображений. - person Matt; 18.06.2019
comment
Вижу, что в контекстном меню Docker есть настройка - switch to Windows Containers. Я думал, что это будет означать, что «базовым контейнером» будет ОС Windows, а не ОС Linux. Но это не так? Я хотел бы иметь доступ к виртуальному HD на виртуальных жестких дисках Hyper V. Но это кажется непрактичным .. - person Zach Smith; 28.07.2019

Если вы используете Windows 10 и используете контейнеры Windows

докер, запускающий контейнеры Windows

На изображении выше докер запускает контейнеры Windows. Итак, это показывает переход на контейнеры Linux.

Сначала запустите команду docker info (более конкретную docker info --format “{{json .DockerRootDir}}”).

Вы должны увидеть корневой каталог как

Корневой каталог Docker: C: \ ProgramData \ Docker

Теперь запустите команду, чтобы вытащить изображение вроде

docker pull hello-world

После того, как он извлечет изображение, вы можете заглянуть в корневой каталог докера.

Обратите внимание на текущую измененную дату и время. В одной из папок вы можете увидеть ша слоев.

Расположение докеров в windows

Наконец, вам также нужно заглянуть в следующую папку, если вы хотите знать, куда загружаются изображения. Две папки сверху и снизу:

  • C: \ ProgramData \ Docker \ изображение \ windowsfilter
  • C: \ ProgramData \ Docker \ windowsfilter

Местоположение докера

Теперь о образах 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 contaners. Смотрите самое первое изображение.

Как только докер для Linux запустится, запустите команду еще раз.

docker pull nginx:latest

Вы можете видеть, что изображение загружается.

А где этот образ загружен на ваш жесткий диск? Команда docker info в этом случае может не сильно помочь.

Итак, начнем снова. Щелкните Параметры, а не переключаться на контейнеры Windows ...

Настройки на Docker Desktop для контейнеров Linux

А теперь посмотрим на путь.

Страница настроек на рабочем столе докера, показывающая путь

На моей машине это C:\ProgramData\DockerDesktop\vm-data

Расположение изображений Linux

Обратите внимание на столбец даты изменения. Обратите внимание и обратите внимание на это после того, как вы вытащите или удалите образ на основе Linux.

Это дисковое пространство, зарезервированное для linux env, поэтому вы не сможете просмотреть дальше, чтобы увидеть, где находится изображение.

но если вам нужно, то запустите виртуальную машину на базе Linux, установите докер и исследуйте путь / var / lib / docker /

Иногда могут возникнуть проблемы с разрешением. Если да, см. это и это

person VivekDev    schedule 06.03.2020
comment
Спасибо, это полезно, но мне нужна дополнительная помощь. Я вижу Dockerdesktop для данных размером 7 ГБ. Не могли бы вы объяснить или поделиться ссылками на то, как их очистить, или посмотреть дальше, что содержит эти 7 ГБ? Кроме того, мои настройки докеров в настоящее время установлены для контейнеров Linux, кажется, поскольку я вижу возможность переключиться только на контейнеры Windows. Хотя я не вижу образов контейнеров linux в пути / programData / Docker / $$$ - person Ak777; 19.12.2020

мой можно найти в "C: \ Users \ Public \ Documents \ Hyper-V \ Virtual hard disks"

person Mulder2008    schedule 22.09.2017

вы можете использовать команду ниже для экспорта вашего изображения и можете скопировать то же самое в linux / другой компьютер docker export [OPTIONS] CONTAINER

пример:

docker export --output="latest.tar" red_panda
person Crapper    schedule 22.10.2018

Мне не удалось найти расположение установки Docker на основе WSL. Но есть простой способ получить изображение с помощью самих команд docker!

docker image save myimagename -o myimagename.img

Это создает непосредственно файл изображения.

person Martin Frey    schedule 24.10.2020
comment
Вы действительно спасаете жизнь. - person khtad; 13.06.2021

Рабочий стол докера для Windows 10 был перемещен сюда:

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

person Ted    schedule 07.11.2019

Чтобы отправить это изображение на другую машину:

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 контейнеры находятся в образе диска докера, расположенном в DockerDesktop / settings / advanced / DiskImageLocation.

см. здесь

person user1767316    schedule 17.11.2019

Я не знаю, почему вы пытаетесь получить доступ к изображению, но вы можете создать из него файл резервной копии, просто используя команду docker, и затем загрузить его, где захотите. Пример:

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

Он сохранит tar-файл в вашем домашнем каталоге Windows. Чтобы загрузить его:

$ docker load --input ubuntu.tar
person Gustavo Nóbrega    schedule 03.02.2021
comment
Вы сэкономили день !!! - person Nitish Bhardwaj; 25.05.2021
comment
Потому что я хочу загрузить изображение в экземпляр AWS. - person khtad; 13.06.2021

Если вы используете докер в подсистеме Windows для Linux (WSL2), вы можете получить доступ к изображениям через скрытый общий ресурс:

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

Тома также есть по адресу:

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

Версия докера 20.10.7

введите описание изображения здесь

person Alireza Fattahi    schedule 20.06.2021

Он должен быть здесь:

C:\ProgramData\Docker\tmp\
person Даурен Шалабаев    schedule 01.03.2021

Для меня контейнеры находились в  расположение контейнера на рабочем столе Docker при использовании рабочего стола Docker в Windows с WSL2.

person Pinak Mazumdar    schedule 22.06.2021
comment
Не могли бы вы добавить путь в строковом формате? - person Failed Scientist; 22.06.2021
comment
\\ wsl $ \ docker-desktop-data \ версия-пакет-данные \ сообщество \ докер \ контейнеры - person Pinak Mazumdar; 24.06.2021

В недавнем Docker Desktop, который теперь использует WSL, местоположение изменено -

(last checked with Docker Desktop Community version 2.3.0.3)

Сначала используйте Run - и введите \\wsl$

Это откроет файловый менеджер и отобразит -

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

Просмотрите каталоги, чтобы увидеть необходимые файлы.

введите описание изображения здесь

person GauravKP    schedule 26.06.2021

По умолчанию он находится в каталоге C:\Users\Public\Documents\Hyper-V\Virtual hard disks (файл .vhdx). Его можно изменить в настройках Docker> Дополнительно> Расположение образа диска.

person Maciej Bledkowski    schedule 20.01.2020
comment
Это устарело - person user1034912; 07.10.2020

Я использую Windows 10 Home Version 2004 с Docker 19.03.8. У этого есть новый бэкэнд WSL - в этой конфигурации запустите приглашение WSL (Win-r, затем wsl для запуска), а мои файлы изображений находятся в / mnt / host / wsl / docker-desktop-data / data / docker

person bmshort    schedule 05.07.2020