• 售前

  • 售后

热门帖子
入门百科

如何完全整理你的Docker数据

[复制链接]
我心如烟卸 显示全部楼层 发表于 2021-8-14 14:44:06 |阅读模式 打印 上一主题 下一主题
目录


  • 定期修剪(prune)
  • 镜像驱逐
  • 容器清算
  • 网路整理
  • 卷的蒸发
  • 完全干净的开始
Docker 不会对你的体系进行任何设置更改……但是它会占用大量的磁盘空间。(使用 Docker)不一会儿,当你输入如下下令时,就会返回一些可骇的使用环境统计信息:
  1. docker system df
复制代码
荣幸的是,Docker 允许您从未使用的镜像、容器以及卷中接纳磁盘空间。


定期修剪(prune)


为了安全地删除已停止的容器,未使用的网络和悬挂的图像,最好每隔一段时间运行以下下令:
  1. docker system prune
复制代码
更具风险的选择是:
  1. docker system prune -a
复制代码
这也将抹除任何与正在运行的容器无关的镜像。这大概有一点极度,但是 Docker 还是会重新下载其所需的镜像的。第一次下载会稍慢一些,但随后会将镜像缓存起来以备将来使用。

以下各节先容了删除特定项目标其他方法。


镜像驱逐


Docker 镜像是应用步伐(比方Web服务,语言运行时大概数据管理体系)的磁盘快照。您可以通过输入以下内容来检察所有的镜像,不管是运行中的还是悬空的(与容器无关的镜像):
  1. docker image ls -a
复制代码
一个 Docker 镜像可以通过输入以下下令删除:
  1. docker image rm <name_or_id>
复制代码
可以将恣意数目标镜像添加到此下令——用空格字符分隔它们。


容器清算


Docker 容器是镜像运行的实例,并且可以从同一容器中启动恣意数目标容器。容器通常很小,由于它们是无状态的,并且引用了镜像的文件体系。通过输入以下下令检察所有正在运行和已停止的容器:
  1. docker container ls -a
复制代码
一旦一个容器停止了,你便可以删除它。停止容器的下令如下:
  1. docker container stop <name_or_id>
复制代码
删除容器的下令如下:
  1. docker container rm <name_or_id>
复制代码
同样,可以在此下令中添加恣意数目标以空格分隔的容器名称大概 ID。

险些没有须要保留已停止的容器。 可以将 --rm 选项添加到 docker run 下令中,以在容器停止后自动删除该容器。


网路整理


容器可以毗连到 Docker 管理的网络,因此它们才可以相互通信。这些是不会占用太多磁盘空间的设置文件。通过输入以下内容检察所有 Docker 网络:
  1. docker network ls
复制代码
输入下面的下令可以删除一个或多个无用的网络:
  1. docker network rm <name_or_id>
复制代码
同样,可以在此下令中添加恣意数目标以空格分隔的网络名称大概 ID。


卷的蒸发


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

通过以下下令便可检察所有 Docker 管理的磁盘卷:
  1. docker volume ls
复制代码
移除一个 Docker 卷将会永久抹除其数据!没有转头路!

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

大多数数据库体系将提供备份工具,比方 MySQL 中的 mysqldump 实用步伐。 可以使用 docker exec 下令在正在运行的容器上执行这些操作。

以下 Linux / macOS 下令将在名为 mysql 的容器上运行的名为 mydb 的 MySQL 数据库备份到名为 backup.sql 的文件中。 使用密码为 mysecret 的 MySQL root 用户:
  1. docker exec mysql /usr/bin/mysqldump -u root -pmysecret mydb \  > backup.sql
复制代码
Windows PowerShell 的等效下令:
  1. docker exec mysql /usr/bin/mysqldump -u root -pmysecret -r mydb | \  Set-Content backup.sql
复制代码
您还可以使用 docker cp 下令将数据文件复制到正在运行的容器或从正在运行的容器复制数据文件。 这是通过源路径和目标路径转达的,容器由其 名称/ ID 区分,后跟冒号及其路径,比方,
  1. docker cp mycontainer:/some/file ./host/directory
复制代码
假设您的数据是安全的,则可以通过输入以下内容来删除任何未使用的卷:
  1. docker volume rm <name>
复制代码
可以使用以下方法删除所有未使用的Docker卷——当前未毗连到正在运行的容器的那些卷:
  1. docker volume prune
复制代码
大概,docker volume prune -a 将全部卷删除。 究竟你已经备份了,不是吗?


完全干净的开始


可以使用单个下令扫除掉每个未使用的容器,镜像,卷和网络:
  1. docker system prune -a --volumes
复制代码
如果要在没有确认提示的环境下逼迫清算,可以添加 -f 。 您的体系将规复到没有任何 Docker 数据的原始状态。
到此这篇关于怎样完全清算你的Docker数据的文章就先容到这了,更多干系Docker清算数据内容请搜索草根技术分享从前的文章或继承浏览下面的干系文章希望大家以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作