【Docker知识】重定向 Docker 的根目录

这篇具有很好参考价值的文章主要介绍了【Docker知识】重定向 Docker 的根目录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、说明

        Docker 将下载的镜像、正在运行的容器和持久卷数据存储在系统驱动器上的单个共享目录根目录中。如果您期望在外存(磁盘)、或网络共享存储docker各种对象(比如将一个容器通过U盘拷走),就需要配置个性化存储空间(重定向数据路径)。

二、准备活动

        本指南的主要部分适用于 Linux 的 Docker 引擎和 Windows 和 Mac 上的 Docker 桌面。您需要在所有三个平台上找到您的 Docker daemon.json 文件。这将位于以下位置之一:

  • /etc/docker/daemon.json ( Linux系统).
  • %programdata%\docker\config\daemon.json ( Windows.系统)
  • ~/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/etc/docker/daemon.json ( Mac系统)

        Docker 建议 Windows 和 Mac 用户通过 UI 更新配置文件,而不是在文本编辑器中手动应用更改。您可以通过前往 Docker Desktop 界面中的 Preferences > Docker Engine > Edit file 来访问设置窗口。

三、个性化设定您的数据路径

        Docker 数据目录的位置由配置文件中的数据根设置控制。 17.06 之前发布的旧 Docker 版本使用图形代替。您可以通过运行 docker version 命令来检查您获得的版本。

$ docker version
...
Server: Docker Engine - Community
  Engine:
    Version: 20.10.17

        在配置文件中查找或添加相关密钥。将所需的目录路径设置为其值。这是一个 Linux 示例,它将 Docker 数据存储到安装在文件系统中的外部驱动器:

{
    "data-root": "/mnt/docker-data"
}

        进行更改后,您必须重新启动 Docker 守护程序:

$ sudo service docker restart

        Docker Desktop 可以在 Windows 和 Mac 上通过退出然后启动新实例来重新启动。

        如果要保留现有内容,应将当前数据目录的内容复制到新路径。否则,您将从一个干净的平板开始,无法访问以前创建的容器和图像。

$ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

四、在不重新启动的情况下更改数据目录

        在不重启守护进程下,可以通过创建从 /var/lib/docker 到新位置的符号链接来移动数据目录。如果您的主机空间不足,而条件所限,不允许 Docker 服务重启,本节内容就有用。

1)先将现有的 Docker 数据复制到新目录:

$ sudo rsync -aSv /var/lib/docker/ /mnt/docker-data

然后建立一个符号链接,将 /var/lib/docker定向到目标位置:

$ sudo ln -s /mnt/docker-data/ /var/lib/docker

       注意:不要将此技术用于快速修改文件系统数据的工作环境。如果在复制现有目录和创建符号链接之间的时间内写入数据,则存在发生不一致的风险。

五、定制路径后,哪些数据被变化了?

        更改 Docker 的根目录会影响守护程序存储的所有不同数据类型。包括:镜像、容器、已安装的插件、Swarm 配置和卷,以及 Docker 构建缓存。

        修改路径会将所有这些数据写入您的新位置。您无法选择性地将特定类型移动到单独的安装点。这意味着选择能够提供良好整体性能的存储位置非常重要。使用慢速外部驱动器可能会损害 docker CLI 操作的响应能力,即使它适合某些类型的数据,例如长期镜像存储。

        在没有每种类型的数据路径支持的情况下,修剪未使用的资源可能是管理 Docker 存储需求的更好方法。不要为 Docker 分配更多空间,而是清理冗余资源并将未使用的镜像推送到单独的中央Registry。这可以释放主机上的大量空间。

六、临时性应用不同路径

        您可以通过在启动守护程序时传递 --data-root 标志来手动启动具有特定数据目录的 Docker 引擎。这可用于在数据目录之间切换或在没有现有数据的情况下运行干净的实例。

$ sudo /usr/bin/dockerd --data-root /mnt/docker-data

        --data-root标志将忽略 daemon.json 文件指定的目录路径。配置的目录将保持不变,以便您将来可以恢复到该实例。

七、总结

        Docker 将其所有数据存储在单个目录树 /var/lib/docker中,包括构建和拉取的镜像、创建的容器和卷。但您可以通过在配置文件中添加设置或在启动守护程序时提供 --data-root 标志来自定义它。

        更改数据目录意味着您现有的数据不会出现在 Docker 中,除非您将其复制到新路径。您可以使用此功能维护多个独立的 Docker 存储库,例如一个用于个人项目,另一个用于工作。但是守护进程需要重启,因为程序是一份,无法同时指向两个数据路径。文章来源地址https://www.toymoban.com/news/detail-490620.html

到了这里,关于【Docker知识】重定向 Docker 的根目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • centos 下扩容根目录

    大体情况: 在VM虚拟机上安装了移动云的BCLinux镜像,磁盘设定为8G,但是用过一段时间之后根目录下磁盘已满,无法创建文件夹等操作,因此在VM上进行了磁盘扩容,扩容之后需要在系统上自行挂载,使用mount /dev/sda3 /无法挂载到根目录上,查询了各种博客,终于在根目录上扩

    2024年02月10日
    浏览(44)
  • Mac系统进入根目录

    ❤️ 快捷方式就是使用聚焦搜索 电脑按下 command + 空格 键 输入 /usr/bin 即可进入根目录 输入 /usr/local 即可进入安装目录 ❤️ 查看该目录下所有文件 如果您知道自己正在做什么 并需要显示所有根目录 使用 ls -a

    2024年02月12日
    浏览(51)
  • ubuntu20根目录扩容

    ubuntu根目录/ 或者 /home文件夹有时出现空间满了的情况,可以用gparted工具进行空间的重新分配。 首先,如果你是双系统,需要从windows系统下磁盘压缩分配一部分未使用的空间给ubuntu,注意压缩的空间要邻接ubuntu所在盘的位置。 如果仅仅是把/home文件夹的空间分给/ ,则不需要

    2024年01月25日
    浏览(44)
  • linux系统根目录动态扩容

    前提:虚拟机系统根目录占用40GB,创建vm时磁盘大小给120GB 1. 将剩余空间分区 2. 创建pv 3.vg(centos)扩容

    2024年02月07日
    浏览(65)
  • centos7 根目录扩容

    需求         将测试环境根目录扩容到47G 具体操作 1.添加一块硬盘 我们新添加了一块30G的硬盘 2.查看本机磁盘环境 lsblk 我们可以看到根目录总容量为17G,新添加的设备sdb为30G  添加磁盘分区 fdisk /dev/sdb 创建分区: 查看分区信息是否创建:   可以看见sdb1分区已创建。

    2023年04月26日
    浏览(56)
  • Centos给根目录扩容教程

    今天在使用nacos服务时发现怎么操作都会报错,原因是磁盘空间已满,正好有时间,研究一下怎么对Centos进行扩容 1、首先,通过命令df -h 观察磁盘占用情况 可以发现根目录已经被写满了,这会导致所有写操作都无法进行 2、先关闭虚拟机,然后在VMware的设置中选择添加一块新

    2024年04月16日
    浏览(56)
  • Ubuntu 扩展 LVM 根目录

    1. 查看当前空间使用情况 结果 查看逻辑分组情况 结果 查看磁盘情况 结果 查看块关联情况 结果 2. /dev/sdb 重新分区 结果 输入 m 回车 结果 输入 n 回车 结果 输入 p 回车 结果 输入 1 回车 结果 直接回车 结果 再回车 结果 输入 w 保存分区表 回车 结果 重新读取分区表 没有输出

    2024年02月10日
    浏览(43)
  • React配置src根目录@

    yarn eject or npm run eject 如果报错了记得提前 git commit 一下 找到 webpack.config.js 文件 在 webpack.config.js 文件中找到 alias 配置 在alias里添加 \\\'@\\\': path.resolve(\\\'src\\\') , 或者 \\\'@\\\': path.join(__dirname,\\\'../src\\\') , 重新 npm start 即可

    2024年01月20日
    浏览(72)
  • Jupyter Notebook 配置根目录

    注:本文是在 Windows 10 上配置 Jupyter Notebook 打开的默认根目录,Linux 同。 使用以下命令创建 Jupyter Notebook 配置文件(如果尚未创建): 这将在用户文件夹下的 .jupyter 文件夹中创建一个名为 jupyter_notebook_config.py 的配置文件。 在配置文件中,找到以下行: 去掉注释 # 并在引号

    2024年02月11日
    浏览(54)
  • Linux查看目录下的文件及根目录文件的解释

    在Linux操作系统当中,文件名不区分后缀,但经常使用后缀来帮助用户区分文件。 语法结构:ls 路径 列出指定目录下的内容,该命令在没有指定要列出哪个选项和参数的时候,默认为列出当前目录下的内容,一本都有默认的(注:默认的情况下不区分文件和目录,注意,在

    2024年02月09日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包