Bobcares

Docker System Prune Hangs: How to solve ?

by | May 26, 2022

Docker system prune hangs when the docker daemon process is stuck for some reason.

Bobcares responds to all inquiries, big or small, as part of our Docker hosting support.

Let’s take a closer look at how our Support team helped one of our customers resolve a Docker system prune hangs issue.

Docker system Prune Hangs

When we use docker from command line , sometimes, the docker command hang indefinitely without any response. It happens when we use any of the docker commands docker info, docker help, docker version, docker ps, and docker images.


root@bobcares:~# docker ps
^C

root@bobcares:~#

CTRL+C is the only way to exit the command. This is because we are actually connecting the docker daemon service from the docker client command when we use docker info/docker version/docker ps/docker images. The Docker daemon is merely a service that provides a restful web service via socket.

Docker daemon

The Docker daemon (dockerd) manages Docker objects such as images, containers, networks, and volumes by listening for Docker API requests. To manage Docker services, a daemon can communicate with other daemons.

Docker client

Many Docker users interact with Docker primarily through the Docker client (docker). When we use commands like docker run, the client sends them to dockerd, which executes them. The Docker API is used by the docker command. The Docker client has the ability to communicate with multiple daemons.

Solve Docker hang when using docker ps commands

There are several options to solve this problem:

Solution-1

The most important aspect of this solution is to delete all docker images and logs from the system. Remove any docker images that are no longer needed.

docker system prune -a

If the above command does not work or hangs, try the steps below:-

  1. Firstly, get the root directory of docker images.

    docker info |grep 'Docker Root Dir'

    sudo rm -rf

  2. If the above fails, simply delete the default docker image directory. Make a backup before running this command.

    sudo rm -rf /var/lib/docker

  3. Then, delete the docker runtime files. Before running this command, we should make a backup.

    sudo rm -rf /var/run/docker

  4. Now we can try docker info. If it still isn’t working, we can try uninstalling and reinstalling the docker.

    sudo yum remove docker docker-common docker-selinux docker-engine

  5. Then reinstall Docker.

    sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

    sudo yum install docker-ce docker-ce-cli containerd.io

  6. Then start docker.

    sudo systemctl start docker

  7. Finally, check the docker installation.

    sudo docker run hello-world

Solution-2

If solution one does not work, we can try the following:

  1. Firstly, to remove the -H argument that is used by default when starting the daemon, create a new file /etc/systemd/system/docker.service.d/docker.conf with the following contents. [Service] ExecStart= ExecStart=/usr/bin/dockerd
  2. Then, in /etc/docker/, create a new file “daemon.json” with the following contents: { “debug”: true, “hosts”: [“tcp://127.0.0.1:2375”] }
  3. Finally, Systemctl should be reloaded.

    sudo systemctl daemon-reload

    sudo systemctl stop docker.service

    sudo systemctl start docker.service

Solution-3

If the docker version is too old (less then 13), reboot the system .

Solve Docker prune stuck in “a prune operation is already running”

When a container fails to respond to Docker, this problem appears. Here’s how we got it fixed.

  1. Firstly, locate the containers that are not responding.

    sudo docker inspect %CONTAINER ID%

  2. The inspect command will not return anything if a container does not respond.
  3. Once we’ve identified the %CONTAINER ID% not responding, look for the PID that corresponds to it:

    ps -aux | grep %CONTAINER ID%

  4. Finally, use kill -9 %PID% to terminate this service.

[Looking for a solution to another query? We are just a click away.]

Conclusion

To sum up, our Support team demonstrates how to fix a Docker system prune hangs problem.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF