有一个列出图像的命令docker images,但似乎没有相应的docker containers.
除了成为root并且调查之外/var/lib/docker似乎没有办法做到这一点.我错过了什么吗?这是不应该做的事吗?
我在OS X 10.8.4(Mountain Lion)下在Vagrant下运行Docker,每当我尝试删除已保存的图像时,我都会收到错误消息:
$ docker rmi some-image-id
2013/07/15 hh:mm:ss unexpected JSON input
Run Code Online (Sandbox Code Playgroud)
根据rmi帮助,正确的语法是docker rmi IMAGE [IMAGE...],我不知道该怎么做.
如何删除图像?
$ docker version
Client version: 0.4.8
Server version: 0.4.8
Go version: go1.1
Run Code Online (Sandbox Code Playgroud)
$docker info
Containers: 1
Images: 3
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我跑步时docker ps,根本没有容器出现.跑步docker images显示四(4)base张图像和一(1)张node图像.
我有以下图片:
alex@alexvps:~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 70c0e19168cf 5 days ago 1.069 GB
<none> <none> c2ce80b62174 8 days ago 399.2 MB
<none> <none> 60afe4036d97 8 days ago 325.1 MB
Run Code Online (Sandbox Code Playgroud)
当我尝试删除其中一个时,我得到:
alex@alexvps:~$ sudo docker rmi 60afe4036d97
Error: Conflict, 60afe4036d97 wasn't deleted
2014/01/28 00:54:00 Error: failed to remove one or more images
Run Code Online (Sandbox Code Playgroud)
我该如何删除它们?为什么会有这样的冲突?
每个docker run命令或RUNDockerfile中的每个命令都会创建一个容器.如果容器不再运行,仍然可以看到它docker ps -a.
我是否应该关注拥有大量非运行容器?我应该docker rm在非运行容器上发行吗?
我不确定这些非运行容器会产生什么性能或内存/存储损失.
我想删除Docker上的容器,但是当你想要删除时会发生错误
在删除容器之前的下一步,请参阅现有容器的列表
sts@Yudi:~/docker$ sudo docker ps -as
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES SIZE
78479ffeba5c ubuntu "/bin/bash" 42 hours ago Exited (0) 42 hours ago sharp_wescoff 81 B (virtual 187.7 MB)
0bd2b54678c7 training/webapp "python app.py" 5 days ago Exited (0) 5 days ago backstabbing_ritchie 0 B (virtual 323.7 MB)
0adbc74a3803 training/webapp "python app.py" 5 days ago Exited (143) 5 days ago drunk_feynman 0 B (virtual 323.7 MB)
Run Code Online (Sandbox Code Playgroud)
我要删除列表,即"training/webapp", 但发生了错误
sts@Yudi:~/docker$ sudo docker rmi training/webapp
Error response from …Run Code Online (Sandbox Code Playgroud) 可以删除未运行的容器吗?
例如,我知道这将从创建的图像中删除容器
docker rm `docker ps -q -f status=exited`
Run Code Online (Sandbox Code Playgroud)
但我想知道如何删除那些未运行的
使用Docker容器创建干净的平板的最佳方法是什么?很多次我觉得从头开始更容易,但我有一堆容器,我不知道他们的状态是什么,然后当我运行docker rm它不会让我,因为docker容器仍然可以使用.
我正在读一本关于码头的书.它已经有几年了.
我会引用:
If you want to get rid of all your stopped containers, you can use
the output of docker ps -aq -f status=exited , which gets the
IDs of all stopped containers. For example:
$ docker rm -v $(docker ps -aq -f status=exited)
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到:
michael@michael-desktop:~$ sudo docker rm -v $(docker ps -aq -f status=exited)
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/containers/json?all=1&filters=%7B%22status%22%3A%7B%22exited%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied
"docker rm" requires …Run Code Online (Sandbox Code Playgroud) 我记得用过
docker rm -f `docker ps -aq`
Run Code Online (Sandbox Code Playgroud)
几个月前没有问题链接命令,但现在这不起作用,我得到以下输出:
unknown shorthand flag: 'a' in -aq`
See 'docker rm --help'.
Run Code Online (Sandbox Code Playgroud)
改变了什么?如何在一行中删除所有Docker运行容器?如果它有帮助,我在Windows 10上使用Docker for Windows(本机与Hyper-V,而不是VirtualBox),并且我使用的命令在我以前的Windows 8 Docker工具箱安装中运行良好.