Remover uma imagem por ID usando a força
Nesta etapa, aprenderemos como remover uma imagem Docker usando seu ID de imagem e, especificamente, como usar a opção de força (-f ou --force) quando necessário. Remover por ID é útil quando você deseja ser preciso sobre qual imagem está removendo, especialmente se várias tags apontam para a mesma imagem.
Primeiro, vamos baixar uma imagem que podemos remover por ID. Usaremos a imagem ubuntu. Se você já a tiver, o download será rápido.
docker pull ubuntu
Agora, liste as imagens para obter o ID da imagem ubuntu.
docker images
Encontre a imagem ubuntu na saída e anote seu IMAGE ID. Será uma longa sequência de caracteres hexadecimais. Você só precisa dos primeiros caracteres (geralmente 3 ou mais) para identificar a imagem de forma exclusiva.
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 270000000000 2 weeks ago 77.8MB
Vamos tentar remover a imagem usando seu ID sem a opção de força primeiro. Substitua YOUR_IMAGE_ID pelo ID da imagem real que você anotou na saída de docker images.
docker rmi YOUR_IMAGE_ID
Se a imagem não estiver sendo usada por nenhum contêiner em execução ou parado, este comando provavelmente terá sucesso e removerá a imagem. No entanto, se houver um contêiner baseado nesta imagem, você receberá uma mensagem de erro indicando que a imagem está sendo usada por um contêiner e não pode ser removida.
Para demonstrar o uso da opção de força, vamos primeiro executar um contêiner baseado na imagem ubuntu.
docker run -d ubuntu sleep 3600
Este comando executa um contêiner Ubuntu em modo detached (-d) e o mantém em execução por uma hora (sleep 3600).
Agora, tente remover a imagem ubuntu por seu ID novamente sem a opção de força.
docker rmi YOUR_IMAGE_ID
Você deve receber uma mensagem de erro semelhante a esta:
Error response from daemon: conflict: unable to remove repository reference "ubuntu:latest" (must force) - image is referenced by one or more containers: 000000000000 (created ...)
Este erro ocorre porque um contêiner está usando a imagem. Para remover uma imagem que está sendo usada por um contêiner, você precisa usar a opção de força (-f).
Agora, vamos remover a imagem usando seu ID com a opção de força. Substitua YOUR_IMAGE_ID pelo ID da imagem real.
docker rmi -f YOUR_IMAGE_ID
A opção de força diz ao Docker para remover a imagem mesmo que ela esteja sendo usada por um contêiner. O Docker primeiro parará e removerá quaisquer contêineres que estejam usando a imagem e, em seguida, removerá a própria imagem. A saída mostrará que a imagem e suas camadas foram excluídas.
Untagged: ubuntu:latest
Deleted: sha256:2700000000000000000000000000000000000000000000000000000000000000
Deleted: sha256:0000000000000000000000000000000000000000000000000000000000000000
... (mais linhas Deleted)
Liste as imagens novamente para confirmar que a imagem ubuntu foi removida.
docker images
A imagem ubuntu não deve mais estar na lista.
Usar a opção de força deve ser feito com cautela, pois ela irá parar e remover contêineres sem confirmação adicional.