Docker默认镜像和容器存储位置修改

Docker 默认安装的情况下,会使用 /var/lib/docker/ 目录作为存储目录,用以存放拉取的镜像和创建的容器等。不过由于此目录一般都位于系统盘,遇到系统盘比较小,而镜像和容器多了后就容易尴尬,这里说明一下如何修改 Docker 的存储目录。

最简单粗暴的办法,当然就是直接把数据盘挂载到 /var/lib/docker 目录下,不过这样对整体影响太大,其他程序需要使用数据盘时很不方便,也可以使用软链接方式把 /var/lib/docker 和数据盘目录连接在一起同样可以实现,但是后期可能不方便维护,所以还是从 Docker 端的修改入手。

1.查看当前docker的默认存储目录

docker info

可以看到docker存储驱动程序和默认存储位置:

Storage Driver: overlay
Docker Root Dir: /var/lib/docker

2.停止docker服务

systemctl stop docker.service

3.目录迁移

创建新的docker目录,我在/mnt目录下面建了 /mnt/docker目录。迁移/var/lib/docker目录下面的文件到 /home/docker

cp -rp /var/lib/docker/* /mnt/docker/

4.修改配置文件

编辑 /etc/docker/daemon.json 文件:

默认情况下daemon.json这个配置文件是没有的,这里实际也就是新建一个,然后写入以下内容(此文件还涉及默认源的设定,如果设定了国内源,那么实际就是在源地址下方加一行):

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "data-root": "/mnt/docker"
}

编辑docker配置文件

sudo vim /etc/systemd/system/multi-user.target.wants/docker.service

# 将ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock修改以下内容:
ExecStart=/usr/bin/dockerd --graph=/mnt/docker --storage-driver=overlay

5.重启 docker 服务,并检查docker存储路径是否配置成功

重启docker服务,就可以更新docker默认的镜像容器保存位置。特别注意,如果新的保存位置里拷贝了原来容器保存位置里的所有内容,那么镜像数据等也就迁移过来了。

systemctl restart docker

docker info


6.启动成功后,确认之前的镜像还在

docker ps -a
docker images

7.确定容器、镜像没问题后删除/var/lib/docker/目录中的文件

rm -rf /var/lib/docker/*
 

注意:docker主要是做了文件系统的隔离,所以每个镜像和容器实际上都是依赖块隔离的硬盘空间(在里面部署一个隔离的文件系统),所以可以通过直接拷贝的方式进行迁移,而不需要担心有什么依赖关系无法通过拷贝带过去。

修改Docker镜像存储位置,可以按照以下步骤进行操作: 1. 首先,确认你要将镜像存储位置更改为哪个挂载点。假设你将镜像存储位置更改为新挂载点 `/data/`。 2. 创建一个新的目录来存储镜像。使用以下命令在新挂载点上创建目录: ``` mkdir -p /data/var/lib/docker/ ``` 3. 将原有的Docker容器镜像拷贝到新的存储位置。使用以下命令进行拷贝: ``` cd /data/var/lib/docker/ cp -r /var/lib/docker/* /data/var/lib/docker/ ``` 4. 修改Docker的服务配置文件。使用编辑器打开`docker.service`文件: ``` vim /usr/lib/systemd/system/docker.service ``` 5. 在`ExecStart`行的末尾添加参数`--graph /data/var/lib/docker`,以设置新的存储路径。修改后的行应该类似于: ``` ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /data/var/lib/docker ``` 6. 保存文件并退出编辑器。 7. 重新加载Docker服务配置: ``` systemctl daemon-reload ``` 8. 重启Docker服务以使更改生效: ``` systemctl restart docker ``` 现在,Docker镜像存储位置已经成功修改为新挂载点 `/data/`。请确保在操作过程中仔细检查命令,以避免错误。引用 [2 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker----如何更改docker镜像存储路径](https://blog.csdn.net/redrose2100/article/details/130073174)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [修改docker默认存储路径方法总结](https://blog.csdn.net/m0_58684193/article/details/127554527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值