mirror of https://github.com/docker/docs.git
				
				
				
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
| ---
 | |
| description: Troubleshooting volume errors
 | |
| keywords: cadvisor, troubleshooting, volumes, bind-mounts
 | |
| title: Troubleshoot volume errors
 | |
| redirect_from:
 | |
| - /engine/admin/troubleshooting_volume_errors/
 | |
| ---
 | |
| 
 | |
| This topic discusses errors which may occur when you use Docker volumes or bind
 | |
| mounts.
 | |
| 
 | |
| ## `Error: Unable to remove filesystem`
 | |
| 
 | |
| Some container-based utilities, such
 | |
| as [Google cAdvisor](https://github.com/google/cadvisor), mount Docker system
 | |
| directories, such as `/var/lib/docker/`, into a container.  For instance, the
 | |
| documentation for `cadvisor` instructs you to run the `cadvisor` container as
 | |
| follows:
 | |
| 
 | |
| 
 | |
| ```bash
 | |
| $ sudo docker run \
 | |
|   --volume=/:/rootfs:ro \
 | |
|   --volume=/var/run:/var/run:rw \
 | |
|   --volume=/sys:/sys:ro \
 | |
|   --volume=/var/lib/docker/:/var/lib/docker:ro \
 | |
|   --publish=8080:8080 \
 | |
|   --detach=true \
 | |
|   --name=cadvisor \
 | |
|   google/cadvisor:latest
 | |
| ```
 | |
| 
 | |
| When you bind-mount `/var/lib/docker/`, this effectively mounts all resources of
 | |
| all other running containers as filesystems within the container which mounts
 | |
| `/var/lib/docker/`. When you attempt to remove any of these containers, the
 | |
| removal attempt may fail with an error like the following:
 | |
| 
 | |
| ```none
 | |
| Error: Unable to remove filesystem for
 | |
| 74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515:
 | |
| remove /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm:
 | |
| Device or resource busy
 | |
| ```
 | |
| 
 | |
| The problem occurs if the container which bind-mounts `/var/lib/docker/`
 | |
| uses `statfs` or `fstatfs` on filesystem handles within `/var/lib/docker/`
 | |
| and does not close them.
 | |
| 
 | |
| Typically, we would advise against bind-mounting `/var/lib/docker` in this way.
 | |
| However, `cAdvisor` requires this bind-mount for core functionality.
 | |
| 
 | |
| If you are unsure which process is causing the path mentioned in the error to
 | |
| be busy and preventing it from being removed, you can use the `lsof` command
 | |
| to find its process. For instance, for the error above:
 | |
| 
 | |
| ```bash
 | |
| $ sudo lsof /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm
 | |
| ```
 | |
| 
 | |
| To work around this problem, stop the container which bind-mounts
 | |
| `/var/lib/docker` and try again to remove the other container.
 |