Docker takes up a lot of space. When we run the container, pull the image, deploy the application, and build our own image, our disk space will be occupied.
- Install Docker on El Capitan. GitHub Gist: instantly share code, notes, and snippets.
- The Docker client contacted the Docker daemon. The Docker daemon pulled the 'hello-world' image from the Docker Hub. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. The Docker daemon streamed that output to the Docker client, which sent it to.
If you are also troubled by this problem, let’s take a look at how docker uses disk space and how to recycle it.
To access Docker from the launchpad, possibly an update is needed to newer applications; including installing the Docker Toolbox for Mac/Windows. I would also consider after the installation enabling Live Restore to keep containers alive and running in case of any other subsequent mishaps.
The space occupied by docker can be viewed through the following command:
TYPE
Four types of disk used by docker are listed:
- Images: space occupied by all images, including pulled images and locally built images.
- Containers: the space occupied by the running containers, indicating the space of each container’s read-write layer.
- Local volumes: the space for the container to mount the local data volume.
- Build cache: mirrors the cache space generated during the build process (only available when using buildkit, available after docker 18.09).
finalRECLAIMABLE
Is recyclable size.
Let’s take a look at these types.
Disk usage of container
Every time a container is created, some files and directories are created, such as:
/var/lib/docker/containers/ID
Directory. If the container uses the default log mode, all its logs will be saved to this directory in JSON form./var/lib/docker/overlay2
The directory contains the read-write layer of the container. If the container uses its own file system to save data, it will be written to this directory.
Now let’s start with a completely clean system, assuming that docker has just been installed:
First, we start a nginx container:
Run nowdf
After the command, you will see:
- One image, 126mb
- A container
There is no recyclable space at this time because the container is running and the mirror is being used.
Docker Toolbox El Capitan
Now, let’s create a 100MB empty file in the container:
View space again:
You can see that the space occupied by the container has increased. Where is the file stored on this machine?
As mentioned above, it is stored in the read-write layer of the container.
When the container is stopped, the space occupied by the container becomes recyclable:
How to recycle it? Deleting a container will delete the space occupied by its associated read-write layer.
You can also delete all stopped containers with one click:
After deleting the container, the image can also be recycled:
abovedocker container prune
The command is to delete stopped containers. If you want to delete all containers (including stopped and running ones), you can use the following two commands:
Mirrored disk usage
Some of the images are invisible:
- A child image is an intermediate image referenced by other images and cannot be deleted.
- A suspended image, that is, an image that will no longer be used, can be deleted.
The following command lists all mirrors in the suspended state:
Delete this type of image:
Or:
If you want to delete all mirrors, you can use the following command:
Note that the image being used by the container cannot be deleted.
Disk usage of data volume
Data volume is the data storage outside the file system of the container itself.
For example, the application in the container has the function of uploading pictures, which can’t be saved in the container after uploading, because the data in the container will be deleted with the death of the container, so these pictures should be saved outside the container, that is, the data volume.
For example, we run a mongodb container for testing and import a lot of test data, which is not inside the container, but in the data volume, because the data volume is used in the dockerfile of mongodb.
After the test is completed, the mongodb container is deleted, but the test data is still there and has not been deleted.
To delete a data volume that is no longer in use:
Or:
Disk usage of build cache
Docker 18.09 introduced buildkit to improve the performance, security, storage management and other capabilities of the construction process.
To delete the build cache, you can use the following commands:
One click cleaning
Through the above instructions, we know that containers, images, and data volumes all provideprune
This subcommand helps us reclaim space.
In fact, the docker system also hasprune
This subcommand can clear the useless space with one click:
It’s a good habit to execute this order regularly.
Translation from:
https://medium.com/better-programming/docker-tips-clean-up-your-local-machine-35f370a01a78
The above is the whole content of this article. I hope it will help you in your study, and I hope you can support developepaer more.
31 Jul 2016 #DockerA quick guide on how to run containers requiring a GUI with Docker for Mac and XQuartz.
This guide is assuming the following:
- OS X 10.11.5 (El Capitan)
- Docker for Mac 1.12 stable
- XQuartz 2.7.10 beta 2
- Jessie Frazelle’s Firefox Dockerfile
Prerequisites
XQuartz
You’ll need XQuartz, and normally you would probably install it via brew (but not this time):
XQuartz 2.7.9, which is the current one provided by brew, has a bug which will prevent you from following this guide. So, head on over and download XQuartz 2.7.10 beta 2 from here.
Docker El Capitan Update
After installing XQuartz, log out and back in to OS X.
Docker for Mac
Download Docker for Mac 1.12 stable from here, install and run.
Go!
Run XQuartz in e.g. bash:
Docker Mac El Capitan
In the XQuartz preferences, go to the “Security” tab and make sure you’ve got “Allow connections from network clients” ticked:
Again, in e.g. bash, run xhost
and allow connections from your local machine:
You can now to run e.g. Jessie Frazelle’s Firefox container:
Please enable JavaScript to view the comments powered by Disqus.