说明:
docker 小写是指Docker系统的命令行工具。
Docker 大写是指Docker软件系统。
image 镜像,就量个软件包,除操作系统内核外的,包括系统库,应用软件,启动配置等,创建后只读。
container 是指Docker启动一个镜像后的运行结果,相当于在image基础上写盘产生的增量。
如何删除旧的Docker container容器
docker container prune
删除所有未使用的数据 (即按顺序: 停止的container, 没有container的volumne卷和没有container容器的image镜像):
docker system prune
用于删除所有未标记image镜像的类似命令:
docker images | grep "<none>" | awk '{print $3}' | xargs docker rmi
如果你的docker比较旧,可以用下面的命令:
docker rm $(docker ps -q -f status=exited) Windows下: FOR /f "tokens=*" %i IN ('docker ps -a -q') DO docker rm %i
如用PowerShell:
docker rm @(docker ps -aq)
参见 :https://stackoverflow.com/que...
如何在Docker中处理持久性存储 (例如数据库)?
Docker 1.9.0 以上版本使用 volume API:
docker volume create --name hello docker run -d -v hello:/container/path/for/volume container_image my_command
这意味着必须放弃仅数据容器模式以支持新的卷模式。为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。
实际上, volume 是实现数据容器模式的更好方法。
如果使用 -v volume_name:/container/fs/path
Docker将自动为您创建一个已命名的卷, 用:
docker volume ls -f dangling=true
- 检查卷名称:
docker volume ls
- 查看卷在主机上的存储位置:
docker volume inspect volume_name
- 可以像普通目录一样进行备份
- 如果要授权一个容器访问另一个容器的Volume,我们可以使用-volumes-from参数来执行docker run
新的volume api 添加了一个有用的命令, 它允许您识别悬空卷:
docker volume ls -f dangling=true
然后通过它的名称删除它:
docker volume rm <volume name>
也可以一行代码搞定全部:
docker volume rm $(docker volume ls -f dangling=true -q)
# 或用 1.13.x 以上版本
docker volume prune