Docker 技巧:删除 Docker 容器和镜像

 

 

默认安装完 docker 后,每次执行 docker 都须要运行 sudo 命令,很是浪费时间影响效率。若是不跟 sudo,直接执行 docker images 命令会有以下问题:nginx

Get http:///var/run/docker.sock/v1.15/containers/json: dial unix /var/run/docker.sock: permission denied

因而考虑如何免 sudo 使用 docker,通过查找资料,发现只要把用户加入 docker 用户组便可,具体用法以下。docker

免 sudo 使用 docker

若是尚未 docker group 就添加一个:json

sudo groupadd docker

ubuntu下,经过一下命令来看有没有groupubuntu

cat /ect/group

将用户加入该 group 内。而后退出并从新登陆就生效啦。缓存

sudo gpasswd -a ${USER} docker

重启 docker 服务bash

sudo service docker restart

group 或者重启 X 会话post

newgrp - docker
或者
pkill X

注意,最后一步是必须的,不然由于 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,因此 docker images 执行时一样有错。ui

缘由分析

由于 /var/run/docker.sock 所属 docker 组具备 setuid 权限spa

$ sudo ls -l /var/run/docker.sock srw-rw---- 1 root docker 0 May 1 21:35 /var/run/docker.sock

Shipyard安装unix

https://www.shipyard-project.com/docs/deploy/automated/

 

 

删除全部未运行 Docker 容器

docker rm $(docker ps -a -q)

删除全部 Docker 镜像

删除全部未打 tag 的镜像

docker rmi $(docker images -q | awk '/^<none>/ { print $3 }')

删除全部镜像

docker rmi $(docker images -q)

根据格式删除全部镜像

docker rm $(docker ps -qf status=exited)
相关文章
相关标签/搜索