O problema pode ser reproduzido da seguinte forma:
$ docker run -d ubuntu:trusty tail -f /dev/null
c39206003c7ae8992a554a9ac2ea130327fc4af1b2c389656c34baf9a56c84b5
$ stop docker
docker stop/waiting
$ start docker
docker start/running, process 2389
$ docker ps -q
# prints nothing...
$ docker ps -a -q
c39206003c7a
$ docker start c39206003c7a
Error: Cannot start container c39206003c7a: Error getting container c39206003c7ae8992a554a9ac2ea130327fc4af1b2c389656c34baf9a56c84b5 from driver devicemapper: Error mounting '/dev/mapper/docker-253:0-267081-c39206003c7ae8992a554a9ac2ea130327fc4af1b2c389656c34baf9a56c84b5' on '/var/lib/docker/devicemapper/mnt/c39206003c7ae8992a554a9ac2ea130327fc4af1b2c389656c34baf9a56c84b5': device or resource busy
2014/05/08 19:14:57 Error: failed to start one or more containers
$ docker rm c39206003c7a
Error: Cannot destroy container c39206003c7a: Driver devicemapper failed to remove root filesystem c39206003c7ae8992a554a9ac2ea130327fc4af1b2c389656c34baf9a56c84b5: Error running removeDevice
2014/05/08 19:15:15 Error: failed to remove one or more containers
Este é um host Ubuntu 14.04 atualizado executando lxc-docker 0.11.1. O driver de armazenamento é o mapeador de dispositivos e a versão do kernel é 3.13.0.
Esta é uma regressão do docker 0.9 (dos repositórios oficiais do Ubuntu). O problema também está presente em 0,10.
@vieira Reinicialize a máquina e nos informe se você ainda estiver tendo problemas.
As etapas acima são reproduzíveis mesmo depois de reiniciar a máquina.
@alexlarsson pode dar uma olhada? Parece estar relacionado ao mapeador de dispositivos
O problema parece estar relacionado ao mapeador de dispositivos. Eu acho que é realmente outra coisa.
Eu tentei isso, e o problema é a parte "parar o docker". Se eu apenas ctrl-c o daemon do docker, ele tentará parar os contêineres adequadamente, mas parece que nunca consegue parar o contêiner. Então, pressiono mais algumas vezes para forçar o docker a morrer.
Neste ponto, o contêiner (cauda) ainda está em execução, então o dispositivo mapeador de dispositivos será montado, o que significa que não podemos montá-lo novamente ou removê-lo. É por isso que essas operações falham.
@alexlarsson você conhece uma maneira fácil de limpar o sistema quando isso dá errado?
Bem, se você encontrar o processo de contêiner em fuga, talvez possa forçá-lo a eliminá-lo.
@vieira você pode desmontar:
umount / var / lib / docker / devicemapper / mnt / c39206003c7ae8992a554a9ac2ea130327fc4af1b2c389656c34baf9a56c84b5
e inicie o contêiner novamente, ele deve funcionar
Posso ver que meu docker foi iniciado com -d e -r. Primeiro, quando o docker é reiniciado, os contêineres não são reiniciados. Então o erro mencionado acima acontece (ao tentar iniciar o (s) container (s)).
Meu centos 6.5 ainda está recebendo 1.0.0.6 do epel. Isso já foi identificado como um bug no 1.0 e foi corrigido no 1.1? Alguém pode confirmar?
obrigado
Olá a todos, ainda não corrigido em 1.1.1.
As etapas na postagem original ainda se aplicam.
Error response from daemon: Cannot start container 5e9bde9b409b:
Error getting container 5e9bde9b409b001bcc685c0b478e925a53a03bab8d8ef3210bf24aa39410e30d
from driver devicemapper:
Error mounting '/dev/mapper/docker-253:0-267081-5e9bde9b409b001bcc685c0b478e925a53a03bab8d8ef3210bf24aa39410e30d'
on
'/var/lib/docker/devicemapper/mnt/5e9bde9b409b001bcc685c0b478e925a53a03bab8d8ef3210bf24aa39410e30d':
device or resource busy
Estou recebendo muitos também, mas parece remover o contêiner de alguma forma (no sentido de que posso iniciar um novo contêiner com o mesmo nome)
Existe uma solução alternativa para esse problema?
Procurando uma solução alternativa também.
Parece que todos os contêineres foram interrompidos antes que o daemon do docker corrija o problema.
Eu adicionei este bloco pre-stop
ao meu trabalho inicial como uma solução alternativa:
pre-stop script
/usr/bin/docker ps -q | xargs /usr/bin/docker stop
end script
Aqui está um resumo das minhas etapas de depuração: https://gist.github.com/rochacon/4dfa7bd4de3c5f933f0d
@rochacon Obrigado por sua solução alternativa. Vou testar hoje ou amanhã com o 1.2 (parece que você testou com o 1.1.1, certo?). Espero que funcione.
@vieira Também tentei com 1.2.0, mesmos resultados.
Após 4 semanas de execução, um dos meus contêineres parou ... Não tenho certeza por que ... Como posso encontrar a causa raiz?
Enfim, tive o mesmo problema ... Resolvi com a sugestão de
root<strong i="8">@pppdc9prd3ga</strong> mdesales]# docker start federated-registry
Error response from daemon: Cannot start container federated-registry: Error getting container 4841fcb6e51f4e9fcd7a115ac3efae4b0fd47e4f785c735e2020d1c479dc3946 from driver devicemapper: Error mounting '/dev/mapper/docker-253:0-394842-4841fcb6e51f4e9fcd7a115ac3efae4b0fd47e4f785c735e2020d1c479dc3946' on '/var/lib/docker/devicemapper/mnt/4841fcb6e51f4e9fcd7a115ac3efae4b0fd47e4f785c735e2020d1c479dc3946': device or resource busy
2014/10/17 21:04:33 Error: failed to start one or more containers
[root<strong i="9">@pppdc9prd3ga</strong> mdesales]# docker version
Client version: 1.1.2
Client API version: 1.13
Go version (client): go1.2.2
Git commit (client): d84a070/1.1.2
Server version: 1.1.2
Server API version: 1.13
Go version (server): go1.2.2
Git commit (server): d84a070/1.1.2
[root<strong i="10">@pppdc9prd3ga</strong> mdesales]# umount /var/lib/docker/devicemapper/mnt/4841fcb6e51f4e9fcd7a115ac3efae4b0fd47e4f785c735e2020d1c479dc3946
[root<strong i="11">@pppdc9prd3ga</strong> mdesales]# docker start federated-registry
federated-registry
Estamos vendo isso no 1.3.0 agora, em um sistema EC2 Ubuntu que foi atualizado de 12.04 para 14.04. Minha instância dev é uma instalação direta 14.04 no Vagrant e não tem esse problema. Desmontar e reiniciar os contêineres parece funcionar, mas isso anula o propósito de tê-los configurados para reiniciar automaticamente quando a instância for reinicializada ou quando o docker for reiniciado. Deixe-me saber se há mais informações que eu possa fornecer sobre versões de pacotes de suporte, etc, uma vez que tenho um sistema funcional e um não funcional disponível.
Observando o mesmo problema com docker 1.3 Ubuntu 14.04 com kernel Linux 3.13 ou 3.14.
@srobertson você está se referindo a "contêineres não sendo reiniciados quando o daemon é reiniciado"? Você está usando a nova _per-container_ restart-policy? Porque todo o daemon -r
/ --restart=true
foi removido do Docker 1.2
A nova política de reinicialização (por contêiner) é descrita na referência CLI
+1, tenho esse problema no docker 1.3 @ ArchLinux x86_64 com kernel 3.17.2-1-ARCH.
$ docker --version
Docker version 1.3.1, build 4e9bbfa
Umount resolve o problema.
umount é uma solução alternativa, não diria que resolve o problema. Basta reiniciar o daemon com os contêineres em execução para reproduzir o problema.
umount
funciona para mim na seguinte versão do docker:
atc@li574-92> docker --version
Docker version 1.3.1, build 4e9bbfa
Parei o daemon do docker primeiro e então:
umount /dev/mapper/docker-202\:0-729439-a7c53ae579d02aa7bb3aeb2af5f2f79c295e1f5962ec53f16b73896bb3970635
@ mlehner616 Sim, você está certo. Desculpe, é claro que é uma solução alternativa, não uma solução. Isso foi apenas uma má escolha de palavras.
Eu gostaria de ver isso corrigido também, ofc. =)
fyi, desmontado não funcionou para mim. Recebo um erro informando que não há montagem encontrada em / etc / mtab
Docker versão 1.0.0, compilação 63fe64c / 1.0.0 no RHEL 6.5
Eu resolvi isso desmontando automaticamente qualquer montagem antiga quando o docker daemon voltar. Eu não queria corrigir o grande /etc/init/docker.conf
do ubuntu, então coloquei uma pequena linha em /etc/default/docker
vez disso:
cat /proc/mounts | grep "mapper/docker" | awk '{print $2}' | xargs -r umount
Isso parece fazer o truque. Combinei isso com o gerenciamento de inicialização e reaparecimento de meus contêineres docker reais, então agora, depois de service docker restart
, todos os contêineres simplesmente voltarão.
Obrigado, @jypma , isso funcionou para mim também!
_reveja a sessão_ com
Usaremos esse problema como rastreador para a maioria dos relatórios de "dispositivo ou recurso ocupado" ou EBUSY
.
Este problema, como outros, é atenuado manipulando adequadamente o namespace de montagem do daemon do docker. Atualmente não há manipulação padrão do namespace de montagem, portanto, temos problemas como este EBUSY.
Enquanto trabalhamos na solução oficial para lidar com isso, existem soluções que você pode aplicar. Consulte http://blog.hashbangbash.com/2014/11/docker-devicemapper-fix-for-device-or-resource-busy-ebusy/
Confirmando que também encontrei esse problema usando a imagem stock freeipa. Parei o serviço docker e quando tentei reiniciá-lo junto com o contêiner ipa, obtive o seguinte.
$ docker start ipa
Error response from daemon: Cannot start container ipa: Error getting container 98f224de38a0879b8a628179fa29a53b314dfada8c4c2e018113f0affa76f9d2 from driver devicemapper: Error mounting '/dev/mapper/docker-253:0-786581-98f224de38a0879b8a628179fa29a53b314dfada8c4c2e018113f0affa76f9d2' on '/var/lib/docker/devicemapper/mnt/98f224de38a0879b8a628179fa29a53b314dfada8c4c2e018113f0affa76f9d2': device or resource busy
2015/01/11 21:44:38 Error: failed to start one or more containers
A desmontagem do "suporte" contornou o problema para que eu pudesse reiniciar o contêiner.
$ umount /var/lib/docker/devicemapper/mnt/98f224de38a0879b8a628179fa29a53b314dfada8c4c2e018113f0affa76f9d2
$ docker start ipa
ipa
Usando o seguinte:
$ docker version
Client version: 1.3.2
Client API version: 1.15
Go version (client): go1.3.3
Git commit (client): 39fa2fa/1.3.2
OS/Arch (client): linux/amd64
Server version: 1.3.2
Server API version: 1.15
Go version (server): go1.3.3
Git commit (server): 39fa2fa/1.3.2
$ lsb_release -i -d
Distributor ID: CentOS
Description: CentOS release 6.6 (Final)
umount consertou meu problema
docker --version
Docker versão 1.3.2, build 39fa2fa
Portanto, a seguinte solução alternativa é um pouco mais permanente para o meu caso de uso.
Estou usando estritamente o Amazon linux (RedHat6-Like), então fiz uma ligeira modificação no script de inicialização (que provavelmente seria sobrescrito se o docker fosse atualizado). Basicamente, tudo o que isso está fazendo é parar o docker normalmente, verificando as montagens do docker restantes , se houver algum, ele os desmonta. YMMV
_ / etc / init.d / docker_
Adicionando variável lib (linha ~ 28)
prog="docker"
exec="/usr/bin/$prog"
# Adding lib variable here
lib="/var/lib/$prog"
pidfile="/var/run/$prog.pid"
lockfile="/var/lock/subsys/$prog"
logfile="/var/log/$prog"
Adicionando bloco umount para parar a função (linha ~ 77)
stop() {
echo -n $"Stopping $prog: "
killproc -p $pidfile -d 300 $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
# BEGIN UMOUNT BLOCK
if [ $(df | grep $lib | awk '{print $1}' | wc -l) -gt 0 ]; then
umount $(df | grep $lib | awk '{print $1}')
fi
# END UMOUNT BLOCK
return $retval
}
Estou tendo o mesmo problema com o docker 1.4.1 usando o mapeador de dispositivo como driver de armazenamento. Consegui coletar um rastreamento de pilha de pânico do docker por meio de seu arquivo de log.
$ cat / etc / * release
DISTRIB_ID = Ubuntu
DISTRIB_RELEASE = 14.04
DISTRIB_CODENAME = confiável
DISTRIB_DESCRIPTION = "Ubuntu 14.04.1 LTS"
NAME = "Ubuntu"
VERSION = "14.04.1 LTS, Trusty Tahr"
ID = ubuntu
ID_LIKE = debian
PRETTY_NAME = "Ubuntu 14.04.1 LTS"
VERSION_ID = "14.04"
HOME_URL = " http://www.ubuntu.com/ "
SUPPORT_URL = " http://help.ubuntu.com/ "
BUG_REPORT_URL = " http://bugs.launchpad.net/ubuntu/ "
versão $ docker
sudo: incapaz de resolver host ip-172-30-0-39
Versão do cliente: 1.4.1
Versão da API do cliente: 1.16
Versão Go (cliente): go1.3.3
Git commit (cliente): 5bc2ff8
OS / Arch (cliente): linux / amd64
Versão do servidor: 1.4.1
Versão API do servidor: 1.16
Versão Go (servidor): go1.3.3
Git commit (servidor): 5bc2ff8
$ tail -f / var / log / upstart / docker
...
INFO [143413] -job execResize (3dfcbc075227d5b3f0115bd73a1fea4a56a2c0fc68190d84b6d88e93938b4121, 37, 130)
2015/01/22 22:29:22 http: pânico servindo @: erro de tempo de execução: endereço de memória inválido ou desreferência de ponteiro nulo
goroutine 1932 [em execução]:
net / http.func · 011 ()
/usr/local/go/src/pkg/net/http/server.go:1100 + 0xb7
runtime.panic (0xbe5c40, 0x127da13)
/usr/local/go/src/pkg/runtime/panic.c:248 + 0x18d
github.com/docker/docker/daemon.(_execConfig).Resize(0xc20989c800, 0x25, 0x82, 0x0, 0x0)
/go/src/github.com/docker/docker/daemon/exec.go:65 + 0x66
github.com/docker/docker/daemon.(_Daemon).ContainerExecResize(0xc208044f20, 0xc20a836e00, 0x1)
/go/src/github.com/docker/docker/daemon/resize.go:49 + 0x314
github.com/docker/docker/daemon._Daemon.ContainerExecResize·fm(0xc20a836e00, 0x7f49bcd007d8)
/go/src/github.com/docker/docker/daemon/daemon.go:132 + 0x30
github.com/docker/docker/engine.(_Job).Run(0xc20a836e00, 0x0, 0x0)
/go/src/github.com/docker/docker/engine/job.go:83 + 0x837
github.com/docker/docker/api/server.postContainerExecResize(0xc208114fd0, 0xc20a55db27, 0x4, 0x7f49bcd08c58, 0xc209498320, 0xc209e
621a0, 0xc20a69c0c0, 0x0, 0x0)
/go/src/github.com/docker/docker/api/server/server.go:1170 + 0x2d1
github.com/docker/docker/api/server.func·002(0x7f49bcd08c58, 0xc209498320, 0xc209e621a0)
/go/src/github.com/docker/docker/api/server/server.go:1219 + 0x810
net / http.HandlerFunc.ServeHTTP (0xc2081b8280, 0x7f49bcd08c58, 0xc209498320, 0xc209e621a0)
/usr/local/go/src/pkg/net/http/server.go:1235 + 0x40
github.com/gorilla/mux.(_Router).ServeHTTP(0xc2080a3cc0, 0x7f49bcd08c58, 0xc209498320, 0xc209e621a0)
/go/src/github.com/docker/docker/vendor/src/github.com/gorilla/mux/mux.go:98 + 0x297
net / http.serverHandler.ServeHTTP (0xc208180480, 0x7f49bcd08c58, 0xc209498320, 0xc209e621a0)
/usr/local/go/src/pkg/net/http/server.go:1673 + 0x19f
net / http. (_ conn) .serve (0xc20a836300)
/usr/local/go/src/pkg/net/http/server.go:1174 + 0xa7e
criado por net / http. (* Servidor) .Serve
/usr/local/go/src/pkg/net/http/server.go:1721 + 0x313
...
INFO [0056] DELETE /v1.16/containers/hoopla_docker_registry
INFO [0056] + job rm (hoopla_docker_registry)
Não é possível destruir o contêiner hoopla_docker_registry: Driver devicemapper falhou ao remover o sistema de arquivos raiz 6abcbfefe8bdd485dfb192f8926
3add895cda1ae28b578d4a0d9b23574dedc5c: o dispositivo está ocupado
INFO [0066] -job rm (hoopla_docker_registry) = ERR (1)
ERRO [0066] Manipulador para DELETE / containers / { name :. *} erro retornado: Não é possível destruir o contêiner hoopla_docker_registry: Drive
r devicemapper falhou ao remover o sistema de arquivos raiz 6abcbfefe8bdd485dfb192f89263add895cda1ae28b578d4a0d9b23574dedc5c: o dispositivo está ocupado
ERRO [0066] Erro HTTP: statusCode = 500 Não é possível destruir o contêiner hoopla_docker_registry: Driver devicemapper falhou ao remover o sistema de arquivos raiz 6abcbfefe8bdd485dfb192f89263add895cda1ae28b578d4a0d9b23574dedc5c: O dispositivo está ocupado
Eu estava vendo isso no ubuntu 14.04 (no ec2) com 1.4.1 e também não com 1.5. É estranho, porque o docker parece muito confiável no linux mint 17, mas muito confiável no nosso servidor de compilação com o ubuntu 14.04.
Existe uma maneira de não usar o mapeador de dispositivos, já que esse problema parece existir desde 0,9 dias?
Isso pode acontecer com overlayfs também.
Bem, acabei de mudar para aufs e até agora sem problemas.
Qual é a situação desse problema? Eu vi alguns PRs serem mesclados que poderiam estar relacionados, mas nada que declarasse claramente era uma solução para isso. Este é um problema _maior_ na produção e a única solução agora é corrigir o script de inicialização para desmontar corretamente as unidades.
depois de revisar novamente, este não é um exemplo ideal do EBUSY
que dissemos originalmente.
Este caso tem mais a ver com os pids de um contêiner não manipulando os sinais com elegância.
Visto que o caso de reprodução aqui tail -f /dev/null
não está saindo em SIGQUIT
quando o daemon é encerrado, o driver devmapper não pode desmontar corretamente (isso não é exclusivo do devmapper). Antes de o daemon ser iniciado novamente, você pode ver o tail -f /dev/null
ainda em execução, mesmo quando o docker não está.
Um problema como este exigirá pensamentos sobre como tratar drasticamente os pids no contêiner na saída do docker ... @unclejack @crosbymichael pensamentos?
Testei isso no Fedora 21 x86_64. Fornecendo informações para fins de comparação apenas quando o problema não parece estar presente (mais?). Mesmos resultados usando centos: 7 ou ubuntu: trusty images.
$ docker run -d centos:7 tail -f /dev/null
ec496f1a6738430972b79e5f3c9fdbf2527e55817d4638678e3b0dd486191203
$ systemctl stop docker
$ ps ax | grep tail
14681 ? Ss 0:00 tail -f /dev/null
14738 pts/9 S+ 0:00 grep --color=auto tail
$ systemctl start docker
$ docker ps -q
$ docker ps -a -q
ec496f1a6738
$ docker start ec496f1a6738
ec496f1a6738
$ docker rm ec496f1a6738
Error response from daemon: Conflict, You cannot remove a running container. Stop the container before attempting removal or use -f
FATA[0000] Error: failed to remove one or more containers
$ docker stop ec496f1a6738
ec496f1a6738
$ docker rm ec496f1a6738
ec496f1a6738
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Informação do sistema:
$ uname -a
Linux localhost 3.18.9-200.fc21.x86_64 #1 SMP Mon Mar 9 15:10:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ rpm -q device-mapper docker-io
device-mapper-1.02.93-3.fc21.x86_64
docker-io-1.5.0-1.fc21.x86_64
$ docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.3.3
Git commit (client): a8a31ef/1.5.0
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.3.3
Git commit (server): a8a31ef/1.5.0
Basta encontrar isso no Docker 1.5, Ubuntu 14.04
root@ip-10-148-25-50:~# docker start service
Error response from daemon: Cannot start container service: Error getting container f3a7515112a0b5af94b0520844ef8c586763d2051b41b1db90e4c4efbd07e774 from driver devicemapper: Error mounting '/dev/mapper/docker-202:1-153948-f3a7515112a0b5af94b0520844ef8c586763d2051b41b1db90e4c4efbd07e774' on '/var/lib/docker/devicemapper/mnt/f3a7515112a0b5af94b0520844ef8c586763d2051b41b1db90e4c4efbd07e774': device or resource busy
FATA[0000] Error: failed to start one or more containers
executar umount /var/lib/docker/devicemapper/mnt/f3a7515112a0b5af94b0520844ef8c586763d2051b41b1db90e4c4efbd07e774
ajudou entretanto.
Tenho o mesmo problema no Docker 1.5.0, Centos7.0,
[vagrant<strong i="6">@localhost</strong> ~]$ sudo systemctl start docker
[vagrant<strong i="7">@localhost</strong> ~]$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5189b16c0917 mongo:3 "/entrypoint.sh mong 35 minutes ago Exited (128) 29 minutes ago mongod
[vagrant<strong i="8">@localhost</strong> ~]$ sudo docker inspect 5189b16c0917 | grep Error
"Error": "Error getting container 5189b16c0917ff1f87b8aa8ab2e86953887d0e65ad95d0637b0f2213222d55e6 from driver devicemapper: Error mounting '/dev/mapper/docker-253:1-134,
umount falha.
[vagrant<strong i="12">@localhost</strong> ~]$ sudo stat /var/lib/docker/devicemapper/mnt/5189b16c0917ff1f87b8aa8ab2e86953887d0e65ad95d0637b0f2213222d55e6
File: `/var/lib/docker/devicemapper/mnt/5189b16c0917ff1f87b8aa8ab2e86953887d0e65ad95d0637b0f2213222d55e6'
Size: 6 Blocks: 0 IO Block: 4096 ディレクトリ
Device: fd01h/64769d Inode: 201732136 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-03-21 20:36:14.407505308 +0900
Modify: 2015-03-21 20:16:58.863146490 +0900
Change: 2015-03-21 20:16:58.863146490 +0900
Birth: -
[vagrant<strong i="13">@localhost</strong> ~]$ sudo umount /var/lib/docker/devicemapper/mnt/5189b16c0917ff1f87b8aa8ab2e86953887d0e65ad95d0637b0f2213222d55e6
umount: /var/lib/docker/devicemapper/mnt/5189b16c0917ff1f87b8aa8ab2e86953887d0e65ad95d0637b0f2213222d55e6: not mounted
[vagrant<strong i="14">@localhost</strong> ~]$ grep docker /proc/mounts
(no results)
[vagrant<strong i="18">@localhost</strong> ~]$ cat /etc/centos-release
CentOS Linux release 7.0.1406 (Core)
[vagrant<strong i="19">@localhost</strong> ~]$ uname -a
Linux localhost.localdomain 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[vagrant<strong i="20">@localhost</strong> ~]$ sudo docker version
Client version: 1.5.0
Client API version: 1.17
Go version (client): go1.3.3
Git commit (client): a8a31ef/1.5.0
OS/Arch (client): linux/amd64
Server version: 1.5.0
Server API version: 1.17
Go version (server): go1.3.3
Git commit (server): a8a31ef/1.5.0
[vagrant<strong i="21">@localhost</strong> ~]$ rpm -qi docker
Name : docker
Version : 1.5.0
Release : 1.el7
Architecture: x86_64
Install Date: 2015年03月21日 20時04分29秒
Group : Unspecified
Size : 27215826
License : ASL 2.0
Signature : (none)
Source RPM : docker-1.5.0-1.el7.src.rpm
Build Date : 2015年02月12日 05時10分39秒
Build Host : c1bj.rdu2.centos.org
Relocations : (not relocatable)
Packager : CBS <[email protected]>
Vendor : CentOS
URL : http://www.docker.com
Summary : Automates deployment of containerized applications
Description :
Docker is an open-source engine that automates the deployment of any
application as a lightweight, portable, self-sufficient container that will
run virtually anywhere.
Eu o reproduzo pelo docker 1.3.2 do repositório oficial do CentOS7.
$ rpm -qi docker
Name : docker
Version : 1.3.2
Release : 4.el7.centos
Architecture: x86_64
Install Date: 2015年03月22日 02時44分58秒
Group : Unspecified
Size : 25505685
License : ASL 2.0
Signature : RSA/SHA256, 2014年12月11日 04時21分03秒, Key ID 24c6a8a7f4a80eb5
Source RPM : docker-1.3.2-4.el7.centos.src.rpm
Build Date : 2014年12月11日 04時15分49秒
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.docker.com
Summary : Automates deployment of containerized applications
docker 1.5.0 tem o mesmo bug
Error response from daemon: Cannot destroy container 485bf8d6502a: Driver devicemapper failed to remove root filesystem 485bf8d6502a6cf448075d20c529eb24f09a41946a5dd1c61a99e17
O mesmo problema aqui, fácil de reproduzir
docker run -it --name busybox --rm busybox tail -f /dev/null
On another shell:
root<strong i="6">@staging5</strong>:/home/shopmedia #service docker stop
Stopping docker: [ OK ]
root<strong i="7">@staging5</strong>:/home/shopmedia #service docker start
Starting docker: [ OK ]
root<strong i="8">@staging5</strong>:/home/shopmedia #docker rm -f busybox
Error response from daemon: Cannot destroy container busybox: Driver devicemapper failed to remove root filesystem 124cd3329e0fafa6be2a284b36a75571666745436c601a702a4beedb75adc7c0: Device is Busy
FATA[0011] Error: failed to remove one or more containers
Meio Ambiente
docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8/1.4.1
OS/Arch (client): linux/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8/1.4.1
cat /etc/centos-release
CentOS release 6.6 (Final)
cat /proc/version
Linux version 2.6.32-504.8.1.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) ) #1 SMP Wed Jan 28 21:11:36 UTC 2015
rpm -q device-mapper
device-mapper-1.02.90-2.el6_6.1.x86_64
EDIT: A única solução alternativa para mim (não estou usando system.d) é atualizar /etc/init.d/docker, linha 50 com o comando unshare. A correção foi fornecida por @vbatts , obrigado btw
No entanto, essa correção não é escalonável. Não queremos atualizar todas as máquinas que possuímos + Ele será apagado na próxima vez que atualizarmos o docker.
obrigado
Acho que https://github.com/docker/docker/pull/12400 vai consertar isso. Isso ocorre porque o desligamento do daemon do docker deixará os containers em execução não limpos (se os containers não forem eliminados em 10 segundos, o rootfs do container ainda será montado) e não poderá ser removido na próxima inicialização do daemon. (Eu testo em sobreposição)
Obrigado @ coolljt0725 .
1) Qual versão do docker será implementada?
2) Quais são minhas outras opções?
3) Está afetando todo o sistema operacional?
4) Está afetando todos os kernels?
obrigado
1 para a solução alternativa umount. aconteceu comigo com docker 1.6.0, build 4749651.
a reinicialização do docker de serviço não resolveu. umount o problemático 'volume' consertou.
O Docker 1.6.1 (Ubuntu 14.04) ainda apresenta esse problema. umount
funciona.
Docker 1.6.2 (Ubuntu 14.04) umount
não funciona
O Docker 1.7.0 Centos 6.5 ainda apresenta os mesmos problemas.
Acabei de receber isso no Centos 6.3 após atualizar para o Docker 1.7. A atualização reiniciou o docker (obviamente), e quando fui reiniciar os contêineres, todos os meus contêineres node.js foram reiniciados, mas aqueles que executam uwsgi apresentam o erro:
# docker start 48596c91d263
Error response from daemon: Cannot start container 48596c91d263: Error getting container 48596c91d263e44201f9141e7bc701ab9e11fe691c61eadc95019fcfa0e4a549 from driver devicemapper: Error mounting '/dev/mapper/docker-8:17-262147-48596c91d263e44201f9141e7bc701ab9e11fe691c61eadc95019fcfa0e4a549' on '/local/docker/devicemapper/mnt/48596c91d263e44201f9141e7bc701ab9e11fe691c61eadc95019fcfa0e4a549': device or resource busy
Fazer um umount /local/docker/devicemapper/mnt/48596c91d263e44201f9141e7bc701ab9e11fe691c61eadc95019fcfa0e4a549
NÃO resolveu o problema.
O mesmo no Debian. Não é possível iniciar nenhum contêiner, mesmo ao puxar uma imagem de hello-world totalmente nova.
root<strong i="6">@vamp1</strong>:~# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from hello-world
a8219747be10: Pull complete
91c95931e552: Already exists
hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provi
de security.
Digest: sha256:aa03e5d0d5553b4c3473e89c8619cf79df368babd18681cf5daeb82aab55838d
Status: Downloaded newer image for hello-world:latest
Error response from daemon: Cannot start container 69be8cff86828d1f4ca3db9eeeeb1a8891ce1e305bd07847108750a0051846ff: device or resource busy
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): linux/amd64
Server version: 1.7.0
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 0baf609
OS/Arch (server): linux/amd64
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
@tnolet Forneça a saída de docker info
.
@unclejack O docker info
para meu anfitrião é
$ docker info
Containers: 24
Images: 128
Storage Driver: devicemapper
Pool Name: docker-8:17-262147-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file:
Metadata file:
Data Space Used: 2.897 GB
Data Space Total: 107.4 GB
Data Space Available: 104.5 GB
Metadata Space Used: 7.918 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.14 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Library Version: 1.02.89-RHEL6 (2014-09-01)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.81-1.el6.elrepo.x86_64
Operating System: <unknown>
CPUs: 4
Total Memory: 7.812 GiB
Name: radioedit-app101
ID: RY22:ODAC:5NT5:MSBZ:Y52X:L33V:UCHA:IOIL:SR23:YX3U:IILJ:J44R
WARNING: No swap limit support
@tdterry RHEL 6 e CentOS 6 não são mais suportados pelo Red Hat para uso com Docker. Faça upgrade para RHEL 7 ou CentOS 7.
Docker suporta oficialmente Centos 6.5 (https://docs.docker.com/installation/centos/). Além disso, atualizamos o kernel para 3.10. Outras pessoas aqui relatam que o erro existe no CentOS 7 também. Parece mais um problema de mapeador de dispositivos do que um problema de versão do CentOS. Não tenho razão para acreditar que atualizar para o CentOS 7 fará algo diferente.
Acabei de fazer isso no CentOS 7, Docker versão 1.6.0, build 4749651 com devicemapper. Todos os meus 15 contêineres travaram. Estou tentando remover algumas imagens pendentes e estou recebendo o mesmo erro:
Error response from daemon: Cannot destroy container: Driver devicemapper failed to remove root filesystem : Device is Busy
Containers: 25
Images: 237
Storage Driver: devicemapper
Pool Name: docker-253:2-8594920394-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 22.03 GB
Data Space Total: 107.4 GB
Data Space Available: 85.34 GB
Metadata Space Used: 25.47 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.122 GB
Udev Sync Supported: false
Library Version: 1.02.82-git (2013-10-04)
Execution Driver: native-0.2
Kernel Version: 3.10.0-229.4.2.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 24
Total Memory: 141.5 GiB
Name: localhost.localdomain
@amalagaura com o daemon parado, executando mount | grep docker
pode mostrar alguns diretórios montados (como /dev/mapper/docker-253:2-7995406-6296eddc5eaca30246c02d9b9c956161825bd7e92882a357214e091feba6f9b0 on ...
). você pode umount
estes primeiro, depois iniciar o daemon novamente. Se o problema persistir, dmsetup ls | grep docker
e veja entradas como docker-253:2-7995406-6296eddc5eaca30246c02d9b9c956161825bd7e92882a357214e091feba6f9b0 (253:5)
. Dos quais você pode chamar dmsetup remove docker-253:2-7995406-6296eddc5eaca30246c02d9b9c956161825bd7e92882a357214e091feba6f9b0
@vbatts Obrigado pela ajuda. Nosso verdadeiro problema é que nosso cluster de produção de 15 máquinas acabou de morrer. Esta é uma discussão diferente, mas o que deve ser feito se quisermos suporte no docker?
Eu tive um problema semelhante depois de atualizar para o 1.7, ele estava funcionando bem no 1.6.2 no elementaryOS.
Sempre que eu inicio qualquer contêiner, recebo a mensagem
Resposta de erro do daemon: não é possível iniciar o contêiner 560640442c770dff574f5af7b6cdcc8e86ba8a613db87bf90a77aea7f0db322a: dispositivo ou recurso ocupado
Limpei o docker, rm -rf / var / lib / docker e, com a nova instalação, ainda recebo o mesmo erro ao executar a imagem hello-world.
Também notei que as pastas se acumulam em / var / docker / lib / aufs / mnt após cada tentativa falhada.
Estou acessando isso com extrema frequência e estou usando aufs, não o mapeador de dispositivos:
$ sudo docker info
Containers: 3
Images: 2278
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 2284
Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.5.0-54-generic
Operating System: Ubuntu precise (12.04.2 LTS)
CPUs: 8
Total Memory: 7.725 GiB
Name: (omitted)
ID: DWS4:G2M5:XD2Q:CQKA:5OXF:I3RB:6M6F:GUVO:NUFM:KKTF:4RB2:X3HP
Avise-me se houver mais informações de depuração que eu possa fornecer.
Vendo o mesmo problema. umount
não funciona, diz que a pasta não está montada. Observei isso com o docker 1.5.0, depois atualizei para 1.7.1 com o mesmo efeito.
$ docker info
Containers: 15
Images: 91
Storage Driver: devicemapper
Pool Name: docker-202:1-149995-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file:
Metadata file:
Data Space Used: 2.225 GB
Data Space Total: 107.4 GB
Data Space Available: 105.1 GB
Metadata Space Used: 5.03 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.142 GB
Udev Sync Supported: false
Deferred Removal Enabled: false
Library Version: 1.02.82-git (2013-10-04)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-40-generic
Operating System: Ubuntu 14.04.1 LTS
CPUs: 1
Total Memory: 3.676 GiB
WARNING: No swap limit support
Vendo o mesmo no ubuntu 14.04
$ docker info
Containers: 6
Images: 537
Storage Driver: devicemapper
Pool Name: docker-8:1-262623-pool
Pool Blocksize: 65.54 kB
Backing Filesystem: extfs
Data file:
Metadata file:
Data Space Used: 7.546 GB
Data Space Total: 107.4 GB
Data Space Available: 99.83 GB
Metadata Space Used: 19.05 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.128 GB
Udev Sync Supported: false
Deferred Removal Enabled: false
Library Version: 1.02.82-git (2013-10-04)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-52-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 2
Total Memory: 2.939 GiB
Name: test-app
ID: F5T4:5AIR:TDBZ:DGH4:WBFT:ZX6A:FVSA:DI4O:5HE2:CJIV:VVLZ:TGDS
WARNING: No swap limit support
$ docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64
Estou prestes a executar um aplicativo e, independentemente de esse problema ser resolvido, não posso usar o docker na produção porque já experimentei algum contêiner travado e não consegui removê-lo sem reiniciar o sistema, o que é uma dor em um sistema de produção.
@trompx devicemapper com a sincronização do udev desabilitada não vai funcionar.
É parte do motivo pelo qual agora oferecemos binários dinâmicos (que corrigem o problema de sincronização) em vez de um binário estático.
Eu recomendaria substituir seus repositórios de get.docker.com (e o pacote lxc-docker) pelo repositório apt.dockerproject.org (e pacote docker-engine).
Consulte http://blog.docker.com/2015/07/new-apt-and-yum-repos/ para obter mais detalhes.
Há também um novo estado de contêiner (ish) chamado "morto", que é definido quando há problemas ao remover o contêiner. Obviamente, esta é uma solução alternativa para esse problema específico, que permite que você investigue por que existe o erro device or resource busy
(provavelmente uma condição de corrida), caso em que você pode tentar remover novamente ou tentar manualmente corrigir (por exemplo, desmonte quaisquer montagens restantes e, em seguida, remova).
Talvez os drivers gráficos possam ser um pouco mais resilientes nos casos em que temos algum tipo de corrida com o fs (por exemplo, fazer com que ele tente desmontar novamente).
@ cpuguy83 Obrigado pela informação. Agora estou usando a última versão com udev true, mas enquanto tentava configurar um sistema de monitoramento de registro, ocorreu um problema que resultou em todo o meu contêiner com status "Exited (137)" e depois "morto" e tentar removê-los me impede de removendo-os "Resposta de erro do daemon: Não é possível destruir o container 9ca0b5642a55: Driver devicemapper falhou ao remover o sistema de arquivos raiz". Então, ainda tenho esse problema.
Não consegui ver o que aconteceu ao usar o driver syslog (para tentar configurar meu sistema de registro), então não sei realmente o que aconteceu. Eu vou deixar você saber se eu resolver isso.
@trompx Se eles estiverem pendurados na instalação anterior, isso pode causar um problema.
Depois que os contêineres estiverem em um estado "morto", você pode docker rm -f
eles novamente para removê-los do docker e eles não devem aparecer novamente. É provável que os arquivos estejam faltando de forma que o mapeador de dispositivos não possa realmente localizá-los.
Consegui travar novamente, mas com aquele driver de log de tempo json ligado. Após verificar os logs de todos os contêineres, apenas o haproxy retorna alguma entrada útil "/run.sh: fork: Não é possível alocar memória". Eu estava com pouca memória sem swap e devo ter ficado sem memória. Se essa for a causa, isso significa que o Docker irá travar quando ficar sem memória, saindo de todos os contêineres?
@trompx Certamente nada está impedindo o Docker de ser morto por OOM.
Os contêineres não fecham se o docker travar, no entanto, quando o docker inicia o backup, ele mata todos os contêineres em execução (e inicia aqueles que têm uma política de reinicialização).
Estou vendo isso com bastante regularidade ao usar docker-compose 1.4.2 e docker-engine 1.8.3 no Ubuntu 14.04.
Versão do kernel
@gionn : 3.13.0-65-generic
@superdump @gionn idem para as mesmas versões de software, kernel 3.13.0-67-generic
na AWS usando SSDs EBS
Alguém já tentou usar o docker 1.9 para ver se ele foi corrigido? Tem havido algum trabalho relacionado a volumes ...
Volumes (no sentido de estender os dados fora do ciclo de vida do contêiner) é um recurso diferente do que está sendo afetado aqui, não é?
Se a montagem não compartilhada for uma solução viável para esses problemas, o docker não pode fazer isso por padrão quando o daemon é iniciado ..?
Isso deve ser simples o suficiente de implementar.
É simples de fazer e existem várias maneiras de realizar essa tarefa. o
os mantenedores não queriam aceitar solicitações de pull que fizessem isso porque
foi um "hack".
Na sexta-feira, 27 de novembro de 2015 às 6h49 Andreas Stenius [email protected]
escrevi:
Se a montagem não compartilhada for uma solução viável para esses problemas, o docker não pode fazer
que por padrão quando o daemon é iniciado ..?
Isso deve ser simples o suficiente de implementar.-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/docker/docker/issues/5684#issuecomment -160153438.
Isso não é verdade. Tínhamos isso e causou problemas, então, revertemos. É trivial para você fazer isso se não causar nenhum problema.
Obrigado pela informação. Adicionamos o "hack" de não compartilhamento em alguns nós,
veja como vai ...
fre 27 nov. 2015 kl. 19:01 skrev Brian Goff [email protected] :
Isso não é verdade. Tínhamos isso e causou problemas, então, revertemos.
É trivial para você fazer isso se não causar nenhum problema.-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/docker/docker/issues/5684#issuecomment -160182860.
Oi,
Estou recebendo o problema discutido acima ao usar o Docker.
Failed to remove container (da3b06dc0723): Error response from daemon: Unable to remove filesystem for da3b06dc072328112eec54d7b0e00c2c355a8ef471e1ba3c82ab3ffb8e93891f: remove /var/lib/docker/containers/da3b06dc072328112eec54d7b0e00c2c355a8ef471e1ba3c82ab3ffb8e93891f/shm: device or resource busy
Failed to remove container (99cfba26be16): Error response from daemon: Unable to remove filesystem for 99cfba26be16bf7b475aaa4ed3d50f7fca3179082decc60f1418d22745f5a855: remove /var/lib/docker/containers/99cfba26be16bf7b475aaa4ed3d50f7fca3179082decc60f1418d22745f5a855/shm: device or resource busy
Failed to remove container (c34922906202): Error response from daemon: Unable to remove filesystem for c34922906202713a573a45f18f8db45ad6788bde2255f75b0f0e027800721b26: remove /var/lib/docker/containers/c34922906202713a573a45f18f8db45ad6788bde2255f75b0f0e027800721b26/shm: device or resource busy
As informações da minha versão do Docker são as seguintes:
Cliente:
Versão: 1.10.2
Versão API: 1.22
Versão Go: go1.5.3
Git commit: c3959b1
Construído: Seg, 22 de fevereiro, 21:37:01 2016
OS / Arch: linux / amd64
Servidor:
Versão: 1.10.2
Versão API: 1.22
Versão Go: go1.5.3
Git commit: c3959b1
Construído: Seg, 22 de fevereiro, 21:37:01 2016
OS / Arch: linux / amd64
Deve-se notar que me deparei com esse problema muito recentemente. Trabalho com o Docker há quase um ano.
Oi,
Só queria dizer que, depois de reiniciar meu computador, descobri que os recipientes não removidos anteriormente haviam sido removidos. Isso resolve o problema em questão, mas ainda assim será irritante ter contêineres acumulados e sempre ter que reiniciar o sistema operacional.
@chirangaalwis +1. Você percebeu que isso acontece depois que o contêiner já está em execução por algum tempo ou ocorre diretamente após iniciar o contêiner?
Oi,
Bem, pelo que me lembro, experimentei isso depois de um tempo considerável desde o início dos containers. Não depois de muito tempo para ser mais preciso.
A propósito, seria bom se alguém pudesse dar uma explicação completa do motivo por trás desse problema. Sou relativamente novo no conceito de conteinerização.
@chirangaalwis você verificou este problema: https://github.com/docker/docker/issues/17902 Parece que pode ser específico para a versão do kernel. Vou atualizar o kernel da máquina em que estava tendo o problema no dia seguinte ou depois e ver se isso resolve o problema.
+1. Sim, parece que sim, até a minha versão do kernel é 3.13. Sim, também vou verificar isso, mapas com o que relatei.
@chirangaalwis @kabobbob ... Estou no RHEL 7.2 e no kernel 3.10.
[root<strong i="7">@pe2enpmas301</strong> npmo-server]# uname -a
Linux pe2enpmas301.corp.intuit.net 3.10.0-327.3.1.el7.x86_64 #1 SMP Fri Nov 20 05:40:26 EST 2015 x86_64 x86_64 x86_64 GNU/Linux
Ao parar e iniciar contêineres usando docker-compose
, eu sempre recebo este erro ....
Recreating npmoserver_policyfollower_1
ERROR: Driver devicemapper failed to remove root filesystem 3bb07965510f2c398c0fc99c3e0ce4696914f710efabc47f2df19ecf85725021: Device is Busy
A única solução é parar e aguardar alguns segundos antes de tentar novamente. O problema é que não é garantido que a reinicialização funcione. Às vezes, tento reiniciar várias vezes.
@chirangaalwis @marcellodesales Consegui atualizar o servidor para o kernel 3.16 e tentei parar o contêiner e rm. Tudo parecia funcionar bem. Vai precisar trabalhar e ver se o problema foi resolvido.
@kabobbob, por favor, relate em alguns dias se funcionou melhor ... Vou tentar atualizar meus ambientes de pré-produção e relatar.
Tinha isso no rhel 7.2 - uma atualização yum && systemctl reboot corrigiu.
Estava usando LVM direto e Docker versão 1.9.1
Eu também estou tendo este problema. Minha configuração: Ubuntu 14.04, atualizado para o kernel "3.19.0-58-generic # 64 ~ 14.04.1-Ubuntu". Docker versão 1.11.0, compilação 4dc5990. "docker-compose version 1.7.0, build 0d7bf73".
Quando docker-compose up -d
reinicia um contêiner por causa de uma nova imagem, geralmente não consegue remover o contêiner interrompido.
Apenas uma reinicialização ajudará a iniciar o contêiner. Então o problema não é 100% reproduzível, mas acontece com muita frequência. Portanto, sou forçado a reiniciar a máquina host com frequência :-(
$ docker rm 5435d816c9a3_dockercomposeui_docker-compose-ui_1
Error response from daemon: Driver devicemapper failed to remove root filesystem 5435d816c9a35c63a5a636dc56b7d9052f1681ae21d604127b1685dab3848404: Device is Busy
e
# docker ps -a | grep dockercomposeui
5435d816c9a3 c695fdb43f7a "/env/bin/python /app" 2 days ago Dead 5435d816c9a3_dockercomposeui_docker-compose-ui_1
@dsteinkopf Você se
Não, o problema já existia usando docker 1.10 e com o kernel 14.04 padrão do ubuntu (~ 3.10 eu acho) e usando aufs. Então eu atualizei (passo a passo) o driver de armazenamento, kernel e docker. Nenhuma mudança significativa no problema experimentado ...
Você acha que vale a pena tentar uma sobreposição a respeito desse problema? (Desempenho não é um grande problema no meu caso.)
@thaJeztah nunca vi esse problema antes e desde que
Você se deparou com isso depois de atualizar de 1.10 para 1.11
Eu tenho este problema :(
Ainda tenho isso
RHEL 7.2 kernel-3.10.0-327.el7.x86_64
Docker versão 1.9.1, compilação 78ee77d / 1.9.1
device-mapper-libs-1.02.107-5.el7_2.1.x86_64
Também tenho o problema:
docker rm agent4
Error response from daemon: Driver aufs failed to remove root filesystem 16a3129667975c411d0084b38ba512761b64eaa7853f3452a7f8e4f2898d1175: rename /var/lib/docker/aufs/diff/76125e9141ec9de7c12e20d41b00cb44826b19bedf98bd9c650cb7a7cc07913a /var/lib/docker/aufs/diff/76125e9141ec9de7c12e20d41b00cb44826b19bedf98bd9c650cb7a7cc07913a-removing: device or resource busy
versão docker
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:26:49 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:26:49 2016
OS/Arch: linux/amd64
informação do docker
Containers: 9
Running: 8
Paused: 0
Stopped: 1
Images: 80
Server Version: 1.11.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 193
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux 7 (wheezy)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.45 GiB
Name: chell
ID: BXX3:THMK:SWD4:FP35:JPVM:3MV4:XJ7S:DREY:O6XO:XYUV:RHXO:KUBS
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
uname -a
Linux chell 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-1 (2016-03-06) x86_64 GNU/Linux
Esta é uma mistura de questões diferentes. Acho que precisamos fechar isso. Nenhum dos últimos casos relatados é parecido com o OP.
@guenhter Suspeito que isso esteja relacionado a outro problema com a montagem de / var / run em um contêiner (qualquer outro contêiner em seu host) ou montagem de / var / lib / docker
@guenhter Para o registro # 21969
Além disso, muitos dos problemas anteriores ao 1.11 com erros do tipo "dispositivo ou recurso ocupado" são mais prováveis de matar o daemon (desajeitadamente) e, em seguida, reiniciá-lo.
Isso faz com que as contagens de referência internas nas montagens do driver de armazenamento sejam redefinidas para 0, enquanto as próprias montagens ainda estão ativas.
1.11 trata desse caso.
Fechamento pelos motivos acima indicados.
Desculpe - não tenho certeza se entendi isso. O que você quer dizer com "Nenhum dos casos mais recentes relatados se parece com o OP"?
O que devo (e outras pessoas com este problema) fazer? Abrir outro caso?
@dsteinkopf Sim, com o máximo de detalhes que você puder fornecer (arquivos de composição, logs daemon, etc.).
Olá, apenas para observar o problema que eu especifiquei anteriormente. Eu atualizei minha versão do kernel para 4.4.0-21-generic e as informações da versão do docker são as seguintes:
Cliente:
Versão: 1.11.0
Versão API: 1.23
Versão Go: go1.5.4
Git commit: 4dc5990
Construído: Quarta, 13 de abril, 18:38:59 de 2016
OS / Arch: linux / amd64
Servidor:
Versão: 1.11.0
Versão API: 1.23
Versão Go: go1.5.4
Commit do Git: 4dc5990
Construído: Quarta, 13 de abril, 18:38:59 de 2016
OS / Arch: linux / amd64
O problema relatado anteriormente parece ter parado de ocorrer. Usei o Docker por um tempo considerável, atualizando as versões do kernel e parecia ter parado.
Encontrou uma solução alternativa para o problema, pelo menos quando usado com docker-compose, consulte https://github.com/docker/docker/issues/3786#issuecomment -221601065
O mesmo problema ocorre com um contêiner que não consegue reiniciar.
Ubuntu 14.04
Kernel: 3.13.0-24-genérico
Versão Docker:
Client:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:34:23 2016
OS/Arch: linux/amd64
Server:
Version: 1.11.0
API version: 1.23
Go version: go1.5.4
Git commit: 4dc5990
Built: Wed Apr 13 18:34:23 2016
OS/Arch: linux/amd64
Erro:
Error response from daemon: Driver aufs failed to remove root filesystem
802f3a6eb28f8f16bf8452675a389b1d8bf755e59c827d50bec9372420f4194a:
rename /var/lib/docker/aufs/diff/79e53988cfddcc3fb9868316bd9d8c3d7a825fd09a8620553c148bd96243224f /var/lib/docker/aufs/diff/79e53988cfddcc3fb9868316bd9d8c3d7a825fd09a8620553c148bd96243224f-removing:
device or resource busy
Falha ao desmontar:
umount: /var/lib/docker/devicemapper
/mnt/79e53988cfddcc3fb9868316bd9d8c3d7a825fd09a8620553c148bd96243224f is not mounted
(according to mtab)
Isso ainda é um problema para nós (usando 1.11.2 no Ubuntu 14.04.4 LTS (com KVM) (3.13.0-88-genérico)).
Existe algum tíquete em aberto que eu possa assinar para receber atualizações?
@GameScripting Consulte # 21704
Linux zk1 3.10.0-327.28.3.el7.x86_64 (centos 7)
Docker versão 1.12.1, compilação 23cf638
Resposta de erro do daemon: Driver devicemapper falhou ao remover o sistema de arquivos raiz 228f2c2da3de4d5abd3881184aeb330a4c18e4311ecf404e2fb8cd4ffe15e901: devicemapper: Erro ao executar DeleteDevice dm_task_run falhou
Apenas corri para isso. /etc/init.d/docker restart
ajudou, estou feliz que não foi em uma máquina de produção ... 😢
$ docker --version
Docker version 1.11.1, build 5604cbe
Ainda estou entendendo isso também
$ docker --version
Docker version 1.12.2, build bb80604
O mesmo problema tem acontecido em muitas versões do Docker. Eu uso docker-compose
para recriar recipientes. Às vezes funciona de forma limpa, às vezes não. Reiniciar o docker daemon ou reinicializar o servidor limpa o contêiner defeituoso.
Arch Linux; contêineres devicemapper no ext4 FS.
$ docker version
Client:
Version: 1.12.3
API version: 1.24
Go version: go1.7.3
Git commit: 6b644ec
Built: Thu Oct 27 19:42:59 2016
OS/Arch: linux/amd64
Server:
Version: 1.12.3
API version: 1.24
Go version: go1.7.3
Git commit: 6b644ec
Built: Thu Oct 27 19:42:59 2016
OS/Arch: linux/amd64
$ docker info
Containers: 24
Running: 22
Paused: 0
Stopped: 2
Images: 56
Server Version: 1.12.3
Storage Driver: devicemapper
Pool Name: docker-8:3-13500430-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 9.394 GB
Data Space Total: 107.4 GB
Data Space Available: 78.15 GB
Metadata Space Used: 24.82 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.123 GB
Thin Pool Minimum Free Space: 10.74 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /var/lib/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.135 (2016-09-26)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.7.2-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 30.85 GiB
Name: omega
ID: IR7W:NSNN:F2B3:YP32:YTQJ:OFEB:2XLK:HHCK:HJ33:5K3O:KEHI:SDUB
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
127.0.0.0/8
$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
dev devtmpfs 16169500 0 16169500 0% /dev
run tmpfs 16173076 2712 16170364 1% /run
/dev/sda3 ext4 447260560 371064976 53453004 88% /
tmpfs tmpfs 16173076 0 16173076 0% /dev/shm
tmpfs tmpfs 16173076 0 16173076 0% /sys/fs/cgroup
tmpfs tmpfs 16173076 1144 16171932 1% /tmp
/dev/sda1 ext4 289293 45063 224774 17% /boot
tmpfs tmpfs 3234612 8 3234604 1% /run/user/1000
/dev/sdb2 ext4 403042160 15056296 367489480 4% /run/media/ivan/backup
/dev/sda4 ext4 480580312 320608988 135536228 71% /run/media/ivan/ARCHIVES
/dev/sdb3 ext4 225472980 1473948 212522604 1% /run/media/ivan/data
Se ajudar ...
Eu acredito que estou tendo o mesmo problema / semelhante aqui também. Se implantar um serviço usando compose up -d e, em seguida, atualizar o nome da imagem para um nome diferente no compose.yaml e fazer outra composição -d, a composição falhará com erro ao redor do devicemapper:
Erro
ERROR: for <
Versão informação:
versão docker
Cliente:
Versão: 1.12.1
Versão API: 1.24
Versão Go: go1.6.3
Git commit: 23cf638
Construído:
OS / Arch: linux / amd64
Servidor:
Versão: 1.12.1
Versão API: 1.24
Versão Go: go1.6.3
Git commit: 23cf638
Construído:
OS / Arch: linux / amd64
Como solução temporária, adicionei um docker-compose down --rmi antes de executar o up novamente.
Eu também tenho o mesmo problema na versão do Docker: 1.12.3
Tenho quase certeza de que o restante das pessoas que estão enfrentando esse problema está relacionado ao # 27381
Estou vendo isso no docker 1.12.3 no CentOs 7
dc2-elk-02: / root / staging / ls-helper $ docker --version
Docker versão 1.12.3, compilação 6b644ec
dc2-elk-02: / root / staging / ls-helper $ uname -a
Linux dc2-elk-02 3.10.0-327.36.3.el7.x86_64 # 1 SMP Seg 24 de outubro 16:09:20 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux
dc2-elk-02: / root / staging / ls-helper $ docker rm ls-helper
Resposta de erro do daemon: Driver devicemapper falhou ao remover o sistema de arquivos raiz e1b9cdeb519d2f4bea53a552c8b76c1085650aa76c1fb90c8e22cac9c2e18830: O dispositivo está ocupado
PS Não estou usando o docker compose.
Mordido após o host ficar sem espaço em disco.
Qualquer comando que afete o ponto de montagem trava (incluindo "docker ps", "sync", "ls
Eu tive um problema semelhante, vi estes erros como no meu arquivo / var / log / syslog:
Dec 16 14:32:18 rzing dockerd[3093]: time="2018-12-16T14:32:18.627417173+05:30" level=error msg="Failed to load container mount 00d7b9d64ff6c465276e67f5a5e3642ebacd9616c7602d4361b3a7fab038510a: mount does not exist"
Dec 16 14:32:18 rzing dockerd[3093]: time="2018-12-16T14:32:18.627816711+05:30" level=error msg="Failed to load container mount fb108b942f8ed87a9e1affb6480ed477a8f5f823b2639e36348cde4a97924c5e: mount does not exist"
Tentei pesquisar o ponto de montagem em /var/lib/docker/volumes
mas não encontrei nenhum
finalmente reinicie o sistema corrigiu o problema
Comentários muito úteis
Isso ainda é um problema para nós (usando 1.11.2 no Ubuntu 14.04.4 LTS (com KVM) (3.13.0-88-genérico)).
Existe algum tíquete em aberto que eu possa assinar para receber atualizações?