Docker和nvidia-docker安装使用及相关问题总结

1 问题:

docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解决办法:

$ systemctl daemon-reload
$ sudo service docker restart
$ sudo service docker status (should see active (running))
$ sudo docker run hello-world

2 问题:

docker pull ****    (docker pull相关images)
docker load -i *****(docker load相关images)
错误1 Error processing tar file(exit status 1): write /5493598c38e89479ea83bf5b94f6524c655f82835fd534031cc897af54891f3a/layer.tar: no space left on device
错误2 failed to register layer: ApplyLayer exit status 1 stdout: stderr: write *** no space left on device

解决办法:
错误1.检查 /var/lib/docker 所在目录的空间是否足够,假使因为这个原因,只要将/var/lib/docker 挂载到较大的磁盘下就行,重启服务即可。
首先需要停止docker服务

systemctl stop docker

通过命令df -h 先去看下磁盘大概的情况,找一个大的空间

df -h
Filesystem                               Size  Used Avail Use% Mounted on
/dev/sdb                                  2.8T  956G  1.8T  35% /newdata      (这个盘很大,决定把docker目录重新映射到这里)

执行文件夹创建命令

mkdir -p /newdata/docker 注:参数-p 确保目录名称存在,如果目录不存在的就新创建一个

开始迁移 rsync -avzP /var/lib/docker /newdata/docker 先确认是否安装了rsync. 参数解释: -a,归档模式,表示递归传输并保持文件属性。 -v,显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。 -P,显示文件传输的进度信息。(实际上"-P"="–partial --progress",其中的"–progress"才是显示进度信息的)。 -z, 传输时进行压缩提高效率。

rsync -avzP /var/lib/docker /newdata/docker/ 

指定新的docker目录

sudo vim /lib/systemd/system/docker.service 在ExecStart加入  --graph=/newdata/docker/

重启docker服务即可
错误2.可能是新版的docker base Device Size默认只有10G,而你pull的image在解压的过程中所需的空间超过了这个size
修改方法:
编辑/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd 后,加入如下参数

 --storage-opt dm.basesize=50G  --storage-opt dm.fs=xfs(我的是xfs,你的或许是ext4)

其他错误类型介绍

dm.basesize 默认为10G,限制容器和镜像的大小
dm.loopdatasize 存储池大小,默认为100G
dm.loopmetadatasize 元数据大小,默认为2G
dm.datadev 存储池设备,默认生成一个/var/lib/docker/devicemapper/devicemapper/data文件
dm.metadatadev 元数据设备,默认生成一个/var/lib/docker/devicemapper/devicemapper/metadata文件

重启docker服务即可!

3 问题3:dockers空间不够,Docker默认空间大小分为两个,一个是池空间大小,另一个是容器空间大小。

池空间大小默认为:100G

容器空间大小默认为是:10G,上面的是修改容器空间大小

所以修改空间大小也分为两个:

首先,修改空间大小,必需使Docker运行在daemon环境下,即先停止正在运行的docker服务 :

service docker stop
然后使用命令使用daemon环境下运行docker:
docker -d
修改池空间大小方法:

sudo service docker stop
sudo dd if=/dev/zero of=/newdata/docker/devicemapper/devicemapper/data bs=1G count=0 seek=1000
sudo dd if=/dev/zero of=/newdata/docker/devicemapper/devicemapper/metadata bs=1G count=0 seek=10
service docker restart


上面的1000为1TB大小,即为数据池空间大小为1TB,而10则为Metadata的空间大小,10GB
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值