죽은 컨테이너를 제거 할 수 없습니다. Docker 서비스를 다시 시작한 후에 다시 나타납니다.
docker ps -a
CONTAINER ID STATUS
11667ef16239 Dead
그때
docker rm -f 11667ef16239
그런 다음 docker ps -a를 실행하면 docker 컨테이너가 표시되지 않습니다.
docker ps -a
CONTAINER ID STATUS
그러나 Docker 서비스를 다시 시작할 때 :
service docker restart
그리고 docker ps -a를 다시 실행하십시오.
docker ps -a
CONTAINER ID STATUS
11667ef16239 Dead
답변
대부분의 경우 데몬이 컨테이너 정리를 시도 할 때 오류가 발생하여 이제이 “좀비”상태에 갇혀 있습니다.
여기에서 유일한 옵션은 수동으로 정리하는 것입니다.
$ sudo rm -rf /var/lib/docker/<storage_driver>/11667ef16239.../
어디 <storage_driver>
드라이버의 이름입니다 ( aufs
, overlay
, btrfs
, 또는 devicemapper
).
답변
실제로는 죽은 컨테이너를 제거하기 위해 요즘 약간 변경되었습니다. 차단 된 파일 시스템을 마운트 해제하여 해제 할 수 있습니다.
그래서 이런 메시지를 받으면
Error response from daemon: Cannot destroy container elated_wozniak: Driver devicemapper failed to remove root filesystem 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3: Device is Busy
그냥 실행
umount /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3
일반적으로 그 후에 용기를 제거 할 수 있습니다.
답변
dead
이 명령으로 컨테이너를 제거 할 수도 있습니다.
docker rm $(docker ps --all -q -f status=dead)
그러나 dead
컨테이너가 왜 어떻게 생성 되는지 잘 모르겠습니다 . 이 오류는 컨테이너를 얻을 때마다 https://github.com/typesafehub/mesos-spark-integration-tests/issues/34 와 관련된 것으로 보입니다.dead
[업데이트]
Docker 1.13 업데이트로 원치 않는 컨테이너, 매달린 이미지를 쉽게 제거 할 수 있습니다.
$ docker system df #will show used space, similar to the unix tool df
$ docker system prune # will remove all unused data.
답변
죽은 컨테이너를 제거 할 때 다음 오류가 발생했습니다 (CentOS 7의 docker 17.06.1-ce).
Error response from daemon: driver "overlay" failed to remove root filesystem for <some-id>:
remove /var/lib/docker/overlay/<some-id>/merged: device or resource busy
수정 방법은 다음과 같습니다.
1. 도커 리소스를 사용하는 다른 프로세스도 확인
$ grep docker /proc/*/mountinfo
다음과 같은 결과를 출력 /proc/
합니다 pid
.
/proc/10001/mountinfo:179...
/proc/10002/mountinfo:149...
/proc/12345/mountinfo:159 149 0:36 / /var/lib/docker/overlay/...
2. 위 pid의 프로세스 이름을 확인하십시오.
$ ps -p 10001 -o comm=
dockerd
$ ps -p 10002 -o comm=
docker-containe
$ ps -p 12345 -o comm=
nginx <<<-- This is suspicious!!!
따라서 nginx
pid 12345는를 사용하는 것처럼 보이 /var/lib/docker/overlay/...
므로 관련 컨테이너를 제거하고 device or resource busy
오류를 얻을 수 없습니다 . ( 도커 컨테이너와 동일한 마운트 네임 스페이스를 공유하여 삭제를 방지 하는 방법에 대한 논의는 여기 를 참조 하십시오nginx
.)
3. 중지 nginx
하면 컨테이너를 성공적으로 제거 할 수 있습니다.
$ sudo service nginx stop
$ docker rm <container-id>
답변
나는 같은 문제가 있었고 두 답변 모두 도움이되지 않았습니다.
나를 위해 도움이 된 것은 누락 된 디렉토리를 만들고 제거하는 것입니다.
mkdir /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3
mkdir /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3-init
docker rm 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3
답변
강제로 컨테이너를 제거하는 것이 효과적이었습니다.
docker rm -f <id_of_the_dead_container>
참고 :
이 명령으로 인해이 오류가 발생할 수 있습니다.
Error response from daemon: Driver devicemapper failed to remove root filesystem <id_of_the_dead_container>: Device is Busy
이 메시지에도 불구하고 죽은 컨테이너 장치 매퍼의 마운트를 제거해야합니다. 즉, 더 이상이 경로에 액세스 할 수 없습니다.
/var/lib/docker/devicemapper/mnt/<id_of_the_dead_container>
답변
위의 모든 것을 시도했습니다 (재부팅 / 도커 다시 시작 부족).
그래서 여기에 오류 om docker rm이 있습니다.
$ docker rm 08d51aad0e74
Error response from daemon: driver "devicemapper" failed to remove root filesystem for 08d51aad0e74060f54bba36268386fe991eff74570e7ee29b7c4d74047d809aa: remove /var/lib/docker/devicemapper/mnt/670cdbd30a3627ae4801044d32a423284b540c5057002dd010186c69b6cc7eea: device or resource busy
그런 다음 다음을 수행했습니다.
$ grep docker /proc/*/mountinfo | grep 958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac
/proc/20416/mountinfo:629 574 253:15 / /var/lib/docker/devicemapper/mnt/958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac rw,relatime shared:288 - xfs /dev/mapper/docker-253:5-786536-958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac rw,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota
이것은 바쁘게 유지하는 문제가되는 프로세스의 PID입니다-20416 (/ proc /
그래서 나는 ps -p를했고 놀랍게도 다음을 발견했습니다.
[devops@dp01app5030 SeGrid]$ ps -p 20416
PID TTY TIME CMD
20416 ? 00:00:19 ntpd
진정한 WTF 순간. 그래서 나는 문제를 Google로 해결하고 이것을 발견했습니다 : 그런 다음 https://github.com/docker/for-linux/issues/124를 찾았습니다.
ntp 데몬을 다시 시작해야했고 문제가 해결되었습니다 !!!