docker常见问题解决方法

目录

迁移至其他服务器

清理Docker占用的磁盘空间

常见问题:


迁移至其他服务器

1.将docker容器导出

docker export -o 保存路径/xxx.tar 容器id

2.将容器tar远程拷贝到新的服务器(从新的服务器上向老服务器上请求复制)

scp root@服务器地址:/data/xxx.tar /root

3.将导入的tar包转为镜像

docker import -c xxx.tar image_name:tag 

4.将镜像转为容器

docker run -p 8022:22 -h=test --name=test -v /data/home:/home -dit image_name:tag

清理Docker占用的磁盘空间

failed to create runc console socket: mkdir /tmp/pty328598598: no space left on device: unknown

"ERROR:cannot  create temporary directory!"

no space left on device

均属于服务器空间不足

df -h查看磁盘使用情况
df -i 查看inode使用情况

du -sh *查看当前目录下各个文件及目录占用空间大小

df -h和du -sh显示的磁盘大小不一致原因及解决办法
df -hT显示132G空间全部占用,du -sh显示只占用30G

Docker System命令,它可以用于管理磁盘空间。
docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况

docker system prune命令可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。docker system prune -a命令清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了……所以使用之前一定要想清楚吶。

删除所有关闭的容器:

docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
删除所有dangling镜像(即无tag的镜像):

docker rmi $(docker images | grep "^" | awk "{print $3}")
删除所有dangling数据卷(即无用的Volume):

docker volume rm $(docker volume ls -qf dangling=true)
数据卷容器删除

docker rm -v  卷名


限制容器的日志大小

Docker的所有相关文件,包括镜像、容器等都保存在/var/lib/docker/目录中

du -hs /var/lib/docker/

docker将服务器本地文件上传到容器中

查看容器id

docker pa -a

查看容器id

docker cp /data/xxx.txt xxxxxx:/usr/local/

常见问题:

ERROR: could not find an available, non-overlapping IPv4 address pool among the defaults to assign to the network

查看自定义网络数据是否超过最多限制,

       docker network ls |wc -l

        这是因为 Docker 默认支持 30 个不同的自定义 bridge 网络,如果超过这个限制,就会提示上面的错误。你可以使用命令docker network ls来查看你创建的网络,然后通过命令docker network prune来移除没有使用的网络。

你可能感兴趣的:(docker)