如何完全清理你的Docker数据

 更新时间:2021年07月27日 11:44:20   作者:lq木头  
Docker 不会对你的系统进行任何配置更改……但是它会占用大量的磁盘空间,那么如何完全清理你的数据,本文就详细的来介绍一下,感兴趣的可以了解一下

Docker 不会对你的系统进行任何配置更改……但是它会占用大量的磁盘空间。(使用 Docker)不一会儿,当你输入如下命令时,就会返回一些可怕的使用情况统计信息:

docker system df

幸运的是,Docker 允许您从未使用的镜像、容器以及卷中回收磁盘空间。

定期修剪(prune)

为了安全地删除已停止的容器,未使用的网络和悬挂的图像,最好每隔一段时间运行以下命令:

docker system prune

更具风险的选择是:

docker system prune -a

这也将抹除任何与正在运行的容器无关的镜像。这可能有一点极端,但是 Docker 还是会重新下载其所需的镜像的。第一次下载会稍慢一些,但随后会将镜像缓存起来以备将来使用。

以下各节介绍了删除特定项目的其他方法。

镜像驱逐

Docker 镜像是应用程序(例如Web服务,语言运行时或者数据管理系统)的磁盘快照。您可以通过输入以下内容来查看所有的镜像,不管是运行中的还是悬空的(与容器无关的镜像):

docker image ls -a

一个 Docker 镜像可以通过输入以下命令删除:

docker image rm <name_or_id>

可以将任意数量的镜像添加到此命令——用空格字符分隔它们。

容器清理

Docker 容器是镜像运行的实例,并且可以从同一容器中启动任意数量的容器。容器通常很小,因为它们是无状态的,并且引用了镜像的文件系统。通过输入以下命令查看所有正在运行和已停止的容器:

docker container ls -a

一旦一个容器停止了,你便可以删除它。停止容器的命令如下:

docker container stop <name_or_id>

删除容器的命令如下:

docker container rm <name_or_id>

同样,可以在此命令中添加任意数量的以空格分隔的容器名称或者 ID。

几乎没有必要保留已停止的容器。 可以将 --rm 选项添加到 docker run 命令中,以在容器终止后自动删除该容器。

网路整理

容器可以连接到 Docker 管理的网络,因此它们才可以相互通信。这些是不会占用太多磁盘空间的配置文件。通过输入以下内容查看所有 Docker 网络:

docker network ls

输入下面的命令可以删除一个或多个无用的网络:

docker network rm <name_or_id>

同样,可以在此命令中添加任意数量的以空格分隔的网络名称或者 ID。

卷的蒸发

Docker 卷是虚拟磁盘映像。 必须将其附加到正在运行的容器,以便它可以在两次重新启动之间保存文件或其他状态信息。 卷的大小取决于使用它的应用程序,但是典型的数据库即使在大多数情况下都是空的,也需要数百兆的空间。

通过以下命令便可查看所有 Docker 管理的磁盘卷:

docker volume ls

移除一个 Docker 卷将会永远抹除其数据!没有回头路!

如果您要开发数据库驱动的应用程序,通常可以保留一个或多个数据转储,这些数据转储可用于重新创建一组特定的记录。大多数数据库客户端工具都提供转储功能,比如 Adminer 中的 Export 链接。

大多数数据库系统将提供备份工具,例如 MySQL 中的 mysqldump 实用程序。 可以使用 docker exec 命令在正在运行的容器上执行这些操作。

以下 Linux / macOS 命令将在名为 mysql 的容器上运行的名为 mydb 的 MySQL 数据库备份到名为 backup.sql 的文件中。 使用密码为 mysecret 的 MySQL root 用户:

docker exec mysql /usr/bin/mysqldump -u root -pmysecret mydb \  > backup.sql

Windows PowerShell 的等效命令:

docker exec mysql /usr/bin/mysqldump -u root -pmysecret -r mydb | \  Set-Content backup.sql

您还可以使用 docker cp 命令将数据文件复制到正在运行的容器或从正在运行的容器复制数据文件。 这是通过源路径和目标路径传递的,容器由其 名称/ ID 区分,后跟冒号及其路径,例如,

docker cp mycontainer:/some/file ./host/directory

假设您的数据是安全的,则可以通过输入以下内容来删除任何未使用的卷:

docker volume rm <name>

可以使用以下方法删除所有未使用的Docker卷——当前未连接到正在运行的容器的那些卷:

docker volume prune

或者,docker volume prune -a 将全部卷删除。 毕竟你已经备份了,不是吗?

完全干净的开始

可以使用单个命令清除掉每个未使用的容器,镜像,卷和网络:

docker system prune -a --volumes

如果要在没有确认提示的情况下强制清理,可以添加 -f 。 您的系统将恢复到没有任何 Docker 数据的原始状态。

到此这篇关于如何完全清理你的Docker数据的文章就介绍到这了,更多相关Docker清理数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Centos7 安装部署Kubernetes(k8s)集群实现过程

    Centos7 安装部署Kubernetes(k8s)集群实现过程

    这篇文章主要为大家介绍了Centos7 安装部署Kubernetes(k8s)集群实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Docker如何搭建私有仓库

    Docker如何搭建私有仓库

    文章介绍了如何搭建私有仓库并使用Docker进行镜像的管理和推送,首先,搭建私有仓库并配置非HTTPS访问(适用于Ubuntu、Debian和CentOS),然后,使用Docker命令标记、推送和拉取镜像,最后,通过curl命令查看仓库中的镜像列表
    2025-03-03
  • Docker容器中运行nginx

    Docker容器中运行nginx

    本文介绍了从docker hub拉取官方nginx镜像并自定义部分配置,绑定端口运行的过程。希望小伙伴们能够从中得到些知识
    2017-03-03
  • Docker Desktop Vmmem内存占用过高问题及完美解决方案

    Docker Desktop Vmmem内存占用过高问题及完美解决方案

    DockerDesktopVmmem内存占用过高问题常见于其基于WSL运行类似虚拟机的机制,通过编辑.wslconfig文件限制WSL资源,可有效降低内存占用,具体操作包括创建.wslconfig文件,调整内存配置,并重启Docker Desktop,需注意内存设置不宜过小,以免影响Docker运行和容器稳定性
    2024-09-09
  • docker commit命令的具体使用

    docker commit命令的具体使用

    本文主要介绍了docker commit命令的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • docker 搭建部署 YAPI 框架的详细过程

    docker 搭建部署 YAPI 框架的详细过程

    Yapi是一个高效、易用、功能强大的接口文档管理工具,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 AP,这篇文章主要介绍了docker 搭建部署 YAPI 框架,需要的朋友可以参考下
    2022-08-08
  • 启动docker的时候如何把参数传递给docker里面的项目(推荐)

    启动docker的时候如何把参数传递给docker里面的项目(推荐)

    这篇文章主要介绍了启动docker的时候如何把参数传递给docker里面的项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • docker拉取redis最新镜像并运行的方法详解

    docker拉取redis最新镜像并运行的方法详解

    这篇文章主要介绍了docker拉取redis最新镜像并运行的方法,文章通过图文结合的方式给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-05-05
  • docker images导入导出方式

    docker images导入导出方式

    这篇文章主要介绍了docker images导入导出方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 使用远程Docker进行集成测试的环境搭建过程

    使用远程Docker进行集成测试的环境搭建过程

    使用docker可以帮助我们快速的搭建项目依赖环境,但是本地化的docker依赖,依然让我们的代码在测试时,不够纯粹,对其各个运行环境,都有本地docker安装的要求
    2021-07-07

最新评论