Yes, it is safe. That said, don't just delete all the contents of your cache folder without reason. It can be beneficial to clear out those taking up the significant space in your /Library/Caches/ if you need to free some up, but you really shouldn't clear any contents of your /System/Caches unless there is a problem. Jul 25, 2019 Using the Apple Books app in macOS (formerly known as iBooks), you can download your Books to your Mac, iPhone, IPad, or other iOS devices for reading offline. Ut where are Apple Books downloads stored on your Mac? There’s no Books folder in your user directory, and there’s no Show in Finder option when viewing downloaded books in the app. Docker Desktop on Mac vs. Docker Toolbox Estimated reading time: 8 minutes If you already have an installation of Docker Toolbox, read these topics first to learn how Docker Desktop on Mac and Docker Toolbox differ, and how they can coexist.
The Library
directories are where the system and your code store all of their related data and resources. In macOS, this directory can contain many different subdirectories, most of which are created automatically by the system. In iOS, the app installer creates only a few subdirectories in ~/Library
(such as Caches
and Preferences
) and your app is responsible for creating all others.
Table A-1 lists some of the common subdirectories you might find in a Library
directory in macOS along with the types of files that belong there. You should always use these directories for their intended purposes. For information about the directories your app should be using the most, see The Library Directory Stores App-Specific Files.
Subdirectory | Directory contents |
---|---|
| Contains all app-specific data and support files. These are the files that your app creates and manages on behalf of the user and can include files that contain user data. By convention, all of these items should be put in a subdirectory whose name matches the bundle identifier of the app. For example, if your app is named MyApp and has the bundle identifier Resources required by the app to run must be placed inside the app bundle itself. |
| Contains programs that assist users in configuration or other tasks. |
| Contains audio plug-ins, loops, and device drivers. |
| Contains app-specific autosave data. |
| Contains cached data that can be regenerated as needed. Apps should never rely on the existence of cache files. Cache files should be placed in a directory whose name matches the bundle identifier of the app. By convention, apps should store cache files in a subdirectory whose name matches the bundle identifier of the app. For example, if your app is named MyApp and has the bundle identifier |
| Contains resources for picking colors according to a certain model, such as the HLS (Hue Angle, Saturation, Lightness) picker or RGB picker. |
| Contains ColorSync profiles and scripts. |
| Contains system bundles and extensions. |
| Contains the home directories for any sandboxed apps. (Available in the user domain only.) |
| Contains plug-ins for extending system-level contextual menus. |
| Contains data files with web browser cookies. |
| Contains data used by Xcode and other developer tools. |
| Contains language dictionaries for the spell checker. |
| Contains documentation files and Apple Help packages intended for the users and administrators of the computer. (Apple Help packages are located in the |
| Contains device drivers and other kernel extensions. |
| Contains aliases to frequently accessed folders, files, or websites. (Available in the user domain only.) |
| Contains font files for both display and printing. |
| Contains frameworks and shared libraries. The |
| Contains plug-ins, libraries, and filters for web-browser content. |
| Contains keyboard definitions. |
| Specifies the agent apps to launch and run for the current user. |
| Specifies the daemons to launch and run as root on the system. |
| Contains log files for the console and specific system services. Users can also view these logs using the Console app. |
| Contains the user’s mailboxes. (Available in the user domain only.) |
| Contains plug-ins for the System Preferences app. Developers should install their custom preference panes in the local domain. |
| Contains the user’s preferences. You should never create files in this directory yourself. To get or set preference values, you should always use the |
| In the system and local domains, this directory contains print drivers, PPD plug-ins, and libraries needed to configure printers. In the user domain, this directory contains the user’s available printer configurations. |
| Contains QuickLook plug-ins. If your app defines a QuickLook plug-in for viewing custom document types, install it in this directory (user or local domains only). |
| Contains QuickTime components and extensions. |
| Contains screen saver definitions. See Screen Saver Framework Reference for a description of the interfaces used to create screen saver plug-ins. |
| Contains scripts and scripting resources that extend the capabilities of AppleScript. |
| Contains system alert sounds. |
| (Deprecated) Contains system and third-party scripts and programs to be run at boot time. (See Daemons and Services Programming Guide for more information about starting up processes at boot time.) |
| Contains web server content. This directory contains the CGI scripts and webpages to be served. (Available in the local domain only.) |
Copyright © 2018 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2018-04-09
Estimated reading time: 8 minutesIf you already have an installation of Docker Toolbox, read these topicsfirst to learn how Docker Desktop on Mac and Docker Toolbox differ, and how they cancoexist.
The Docker Toolbox environment
Docker Toolbox installs docker
, docker-compose
, and docker-machine
in/usr/local/bin
on your Mac. It also installs VirtualBox. At installation time,Toolbox uses docker-machine
to provision a VirtualBox VM called default
,running the boot2docker
Linux distribution, with Docker Enginewith certificates located on your Mac at$HOME/.docker/machine/machines/default
.
Before you use docker
or docker-compose
on your Mac, you typically use thecommand eval $(docker-machine env default)
to set environment variables sothat docker
or docker-compose
know how to talk to Docker Engine running onVirtualBox.
This setup is shown in the following diagram.
The Docker Desktop on Mac environment
Docker Desktop on Mac is a Mac-native application, that you install in /Applications
.At installation time, it creates symlinks in /usr/local/bin
for docker
anddocker-compose
and others, to the commands in the applicationbundle, in /Applications/Docker.app/Contents/Resources/bin
.
Here are some key points to know about Docker Desktop on Mac before you get started:
Docker Desktop uses HyperKit instead of Virtual Box. Hyperkit is a lightweight macOS virtualization solution built on top of Hypervisor.framework in macOS 10.10 Yosemite and higher.
When you install Docker Desktop on Mac, machines created with Docker Machine are not affected.
Docker Desktop does not use
docker-machine
to provision its VM.The Docker Engine API is exposed on asocket available to the Mac host at/var/run/docker.sock
. This is thedefault location Docker and Docker Compose clients use to connect tothe Docker daemon, so you can usedocker
anddocker-compose
CLI commandson your Mac.
This setup is shown in the following diagram.
With Docker Desktop on Mac, you only get (and only usually need) one VM, managed by Docker Desktop. Docker Desktop automatically upgrades the Docker client and daemon when updates are available.
Also note that Docker Desktop can’t route traffic to containers, so you can’tdirectly access an exposed port on a running container from the hosting machine.
If you do need multiple VMs, such as when testing multi-node swarms, you cancontinue to use Docker Machine, which operates outside the scope of Docker Desktop. SeeDocker Toolbox and Docker Desktop coexistence.
Setting up to run Docker Desktop on Mac
Check whether Toolbox DOCKER environment variables are set:
If this command returns no output, you are ready to use Docker Desktop.
If it returns output (as shown in the example), unset the
DOCKER
environment variables to make the client talk to the Docker Desktop Engine (next step).Run the
unset
command on the followingDOCKER
environment variables tounset them in the current shell.
Now, this command should return no output.
If you are using a Bash shell, you can use unset ${!DOCKER_*}
to unset all DOCKER environment variables at once. (This does not work in other shells such as zsh
; you need to unset each variable individually.)
Note: If you have a shell script as part of your profile that sets theseDOCKER
environment variables automatically each time you open a commandwindow, then you need to unset these each time you want to use Docker Desktop.
If you install Docker Desktop on a machine where Docker Toolbox is installed..
Docker Desktop replaces the docker
and docker-compose
command lines in/usr/local/bin
with symlinks to its own versions.
See also Unset environment variables in the current shellin the Docker Machine topics.
Docker Toolbox and Docker Desktop coexistence
You can use Docker Desktop and Docker Toolbox together on the same machine. Whenyou want to use Docker Desktop make sure all DOCKER environment variables areunset. You can do this in bash with unset ${!DOCKER_*}
. When you want to useone of the VirtualBox VMs you have set with docker-machine
, just run a eval$(docker-machine env default)
(or the name of the machine you want to target).This switches the current command shell to talk to the specified Toolboxmachine.
This setup is represented in the following diagram.
Using different versions of Docker tools
The coexistence setup works as is as long as your VirtualBox VMs provisionedwith docker-machine
run the same version of Docker Engine as Docker Desktop.If you need to use VMs running older versions of Docker Engine, you can use atool like Docker Version Manager to manageseveral versions of docker client.
Checking component versions
Ideally, the Docker CLI client and Docker Engine should be the same version.Mismatches between client and server, and host machines you might havecreated with Docker Machine can cause problems (client can’t talk to the serveror host machines).
If you have already installed Docker Toolbox, and theninstalled Docker Desktop, you might get a newer version of the Docker client. Run docker version
in a command shell to see client and server versions. In this example, the client installed with Docker Desktop is Version: 19.03.1
and the server (which was installed earlier with Toolbox) is Version: 19.03.2
.
Also, if you created machines with Docker Machine (installed with Toolbox) thenupgraded or installed Docker Desktop, you might have machines running differentversions of Engine. Run docker-machine ls
to view version information for themachines you created. In this example, the DOCKER column shows that each machineis running a different version of server.
You might also run into a similar situation with Docker Universal Control Plane (UCP).
There are a few ways to address this problem and keep using your oldermachines. One solution is to use a version manager likeDVM.
Migrating from Docker Toolbox to Docker Desktop on Mac
Docker Desktop does not propose Toolbox image migration as part of itsinstaller since version 18.01.0. You can migrate existing DockerToolbox images with the scripts described below. (This migrationcannot merge images from both Docker and Toolbox: any existing Docker image isreplaced by the Toolbox images.)
Run the following shell commands in a terminal. You need a workingqemu-img
; it is part of the qemu package in both MacPorts and Brew:
First, find your Toolbox disk images. You probably have just one:~/.docker/machine/machines/default/disk.vmdk
.
Second, find out the location and format of the disk image used by your DockerDesktop.
In this case the format is raw
(it could have been qcow2
), and the locationis ~/Library/Containers/com.docker.docker/Data/vms/0/
.
Mac Library Folder
Then:
- if your format is qcow2, run
- if your format is raw, run the following command. If you are short on diskspace, it is likely to fail.
Finally (optional), if you are done with Docker Toolbox, you may fullyuninstallit.
How do I uninstall Docker Toolbox?
You might decide that you do not need Toolbox now that you have Docker Desktop,and want to uninstall it. For details on how to perform a clean uninstall ofToolbox on Mac, see How to uninstall Toolboxin the Toolbox Mac topics.