Docker Community Forums

Share and learn in the Docker community.

Where are images stored on Mac OS X?

I just installed Docker for Mac and Kinematic. It works fine and I can pull an image (with the command line or the Kinematic UI) and run a container (again with the command and the UI).

But I can’t seem to find the physical location of the images on the host Mac OS X, where should they be? Cleaning up with docker rm and docker rmi also works, but I would like to browse the folder :wink:

It depends on the driver being used, but the default is: $HOME/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2


I’m on mac OS X 10.12.3 using kitematic 0.13.1.

My VM images are stored here: /Users/USERNAME/.docker/machine/machines

You should see a “default” folder here that is your base VM. If you’ve created others, they’d be here as well.

This is different than the docker containers you create or download.

Those are stored at …

1 Like


I am running docker on Mac High Sierra ( version 10.13.3) . docker inspect on my container shows path is /var/lib/docker .But there is no such folder created. Could some one help with image location on Mac pls. And also why docker inspect shows different path? Am i missing something here ? Logs below

docker ps -a

0545bfe74ae2 centos “/bin/bash” 7 minutes ago Up 7 minutes stoic_curran
Vipins-MacBook-Air:Library root# docker inspect 0545bfe74ae2
“Id”: “0545bfe74ae25e9e2c034b816f4926d1aac5ba6d496e20f8131fcb43f96c5d44”,
“Created”: “2018-06-13T03:43:34.009542284Z”,
“Path”: “/bin/bash”,
“Args”: [],
“State”: {
“Status”: “running”,
“Running”: true,
“Paused”: false,
“Restarting”: false,
“OOMKilled”: false,
“Dead”: false,
“Pid”: 1701,
“ExitCode”: 0,
“Error”: “”,
“StartedAt”: “2018-06-13T03:43:34.621987883Z”,
“FinishedAt”: “0001-01-01T00:00:00Z”
“Image”: “sha256:49f7960eb7e4cb46f1a02c1f8174c6fac07ebf1eb6d8deffbcb5c695f1c9edd5”,
“ResolvConfPath”: “/var/lib/docker/containers/0545bfe74ae25e9e2c034b816f4926d1aac5ba6d496e20f8131fcb43f96c5d44/resolv.conf”,
“HostnamePath”: “/var/lib/docker/containers/0545bfe74ae25e9e2c034b816f4926d1aac5ba6d496e20f8131fcb43f96c5d44/hostname”,
“HostsPath”: “/var/lib/docker/containers/0545bfe74ae25e9e2c034b816f4926d1aac5ba6d496e20f8131fcb43f96c5d44/hosts”,
“LogPath”: “/var/lib/docker/containers/0545bfe74ae25e9e2c034b816f4926d1aac5ba6d496e20f8131fcb43f96c5d44/0545bfe74ae25e9e2c034b816f4926d1aac5ba6d496e20f8131fcb43f96c5d44-json.log”,
“Name”: “/stoic_curran”,
“RestartCount”: 0,
“Driver”: “overlay2”,
“Platform”: “linux”,
“MountLabel”: “”,
“ProcessLabel”: “”,
“AppArmorProfile”: “”,
“ExecIDs”: null,
“HostConfig”: {
“Binds”: null,
“ContainerIDFile”: “”,
“LogConfig”: {
“Type”: “json-file”,
“Config”: {}
“NetworkMode”: “default”,
“PortBindings”: {},
“RestartPolicy”: {
“Name”: “no”,
“MaximumRetryCount”: 0
“AutoRemove”: false,
“VolumeDriver”: “”,
“VolumesFrom”: null,
“CapAdd”: null,
“CapDrop”: null,
“Dns”: [],
“DnsOptions”: [],
“DnsSearch”: [],
“ExtraHosts”: null,
“GroupAdd”: null,
“IpcMode”: “shareable”,
“Cgroup”: “”,
“Links”: null,
“OomScoreAdj”: 0,
“PidMode”: “”,
“Privileged”: false,
“PublishAllPorts”: false,
“ReadonlyRootfs”: false,
“SecurityOpt”: null,
“UTSMode”: “”,
“UsernsMode”: “”,
“ShmSize”: 67108864,
“Runtime”: “runc”,
“ConsoleSize”: [
“Isolation”: “”,
“CpuShares”: 0,
“Memory”: 0,
“NanoCpus”: 0,
“CgroupParent”: “”,
“BlkioWeight”: 0,
“BlkioWeightDevice”: [],
“BlkioDeviceReadBps”: null,
“BlkioDeviceWriteBps”: null,
“BlkioDeviceReadIOps”: null,
“BlkioDeviceWriteIOps”: null,
“CpuPeriod”: 0,
“CpuQuota”: 0,
“CpuRealtimePeriod”: 0,
“CpuRealtimeRuntime”: 0,
“CpusetCpus”: “”,
“CpusetMems”: “”,
“Devices”: [],
“DeviceCgroupRules”: null,
“DiskQuota”: 0,
“KernelMemory”: 0,
“MemoryReservation”: 0,
“MemorySwap”: 0,
“MemorySwappiness”: null,
“OomKillDisable”: false,
“PidsLimit”: 0,
“Ulimits”: null,
“CpuCount”: 0,
“CpuPercent”: 0,
“IOMaximumIOps”: 0,
“IOMaximumBandwidth”: 0
“GraphDriver”: {
“Data”: {
“LowerDir”: “/var/lib/docker/overlay2/1a95cc49d89829285e77ed99a67f42c64466c421a01c11b2b085aedb59220371-init/diff:/var/lib/docker/overlay2/15b85ac67b96997c979612b11803fad7be9ae06b8ffc6e77e1c03d58fe5dcea5/diff”,
“MergedDir”: “/var/lib/docker/overlay2/1a95cc49d89829285e77ed99a67f42c64466c421a01c11b2b085aedb59220371/merged”,
“UpperDir”: “/var/lib/docker/overlay2/1a95cc49d89829285e77ed99a67f42c64466c421a01c11b2b085aedb59220371/diff”,
“WorkDir”: “/var/lib/docker/overlay2/1a95cc49d89829285e77ed99a67f42c64466c421a01c11b2b085aedb59220371/work”
“Name”: “overlay2”
“Mounts”: [],
“Config”: {
“Hostname”: “0545bfe74ae2”,
“Domainname”: “”,
“User”: “”,
“AttachStdin”: true,
“AttachStdout”: true,
“AttachStderr”: true,
“Tty”: true,
“OpenStdin”: true,
“StdinOnce”: true,
“Env”: [
“Cmd”: [
“Image”: “centos”,
“Volumes”: null,
“WorkingDir”: “”,
“Entrypoint”: null,
“OnBuild”: null,
“Labels”: {
“org.label-schema.schema-version”: “= 1.0 Base Image org.label-schema.vendor=CentOS org.label-schema.license=GPLv2”
“NetworkSettings”: {
“Bridge”: “”,
“SandboxID”: “d821d222acd141bc07c13333386f5da81b2beb339cf685ed6668ee3fdb210f40”,
“HairpinMode”: false,
“LinkLocalIPv6Address”: “”,
“LinkLocalIPv6PrefixLen”: 0,
“Ports”: {},
“SandboxKey”: “/var/run/docker/netns/d821d222acd1”,
“SecondaryIPAddresses”: null,
“SecondaryIPv6Addresses”: null,
“EndpointID”: “cc1fcf8cd30e856d1a89a77550207f114e342db219904c13ed4eca4cda6a0d5b”,
“Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“IPAddress”: “”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“MacAddress”: “02:42:ac:11:00:02”,
“Networks”: {
“bridge”: {
“IPAMConfig”: null,
“Links”: null,
“Aliases”: null,
“NetworkID”: “9d02913f2d7eaf950523473524322bf896e6e522c29360f50c1287b38b4e4bbb”,
“EndpointID”: “cc1fcf8cd30e856d1a89a77550207f114e342db219904c13ed4eca4cda6a0d5b”,
“Gateway”: “”,
“IPAddress”: “”,
“IPPrefixLen”: 16,
“IPv6Gateway”: “”,
“GlobalIPv6Address”: “”,
“GlobalIPv6PrefixLen”: 0,
“MacAddress”: “02:42:ac:11:00:02”,
“DriverOpts”: null

ls -ld /var/lib/docker/containers/

ls: /var/lib/docker/containers/: No such file or directory

You are missing the subtlety from the previous replies that Docker does not run natively a Mac because the macOS kernel isn’t compatible (i.e., BSD vs Linux). Docker is actually running in a virtual machine using HyperKit. The Docker vm disc image defaults to being in either:




Depending on if you chose the raw filesystem or not. So the folder location of /var/lib/docker is inside of this virtual machine and not on your macOS filesystem which is why you can’t find it with ls.

You can use:

docker volume ls

to list the volumes in this folder, and use:

docker volume prune

command to remove unused container volumes.

BTW, this disk image never gets smaller. So as you added images to Docker and then remove them, removing them doesn’t take up any less space although when you add the next image it will reuse that space but once allocated it never shrinks.




The default physical location is $HOME/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 as @badonk mentioned. But you can change and specify a new “Disk Image Location” using Docker Desktop on your Mac as follows: Docker Desktop -> Preferences -> Disk [Tab] -> Move Disk Image. However, if you attempt to move the disk image to a location that already has one, you get a prompt asking if you want to use the existing image or replace it. You can find more information here on Docker official pages.


@badonk and @rofrano:

As of this morning, 2020/01/28, I took some time to cruise the internet and can reveal that the location has changed yet again… with the current Docker Desktop and Docker Enterprise innards, and running under MacOS Catalina, the VM images are stored at:


The base size for the Docker.raw file is 64 mb… and that’s the only image I currently have on my machine. I am just in the process of learning how to create images with Docker, and knowing where my VM images are kept was an important step in learning how Docker works on my machine.

I am assuming that the {int} will increment as different VM configurations are created and deployed.