docker 容器空间不够用了怎么办
通过命令可以观察到/var/lib/Docker目录很大,我的主机只有20G,这个目录占了18G;原因是devicemapper的空间设的太大,通过docker info打印的Data Space Total参数可以看到,默认是107.4G。
思路如下:
备份当前容器、镜像;
删除/var/lib/docker目录;
使用dd命令重设大小;
恢复容器、镜像;
工具:
需要额外空间保存备份文件,可以挂载一个u盘或者云盘。
docker save 可以导出镜像 tar文件;
docker export 可以导出容器 tar文件;
备份好之后停止docker
[html] view plain copy
# /etc/init.d/docker stop
删除/var/lib/docker目录;
[html] view plain copy
# mkdir -p /var/lib/docker/devicemapper/devicemapper/data
# dd if=/dev/zero of=/var/lib/docker/devicemapper/devicemapper/data bs=1M count=0 seek=8192
建立的文件最大为 1M * 8192 = 8G
启动docker
[html] view plain copy
# /etc/init.d/docker start
使用docker info看看Data Space Total,检查是否设置成功
docker load 可以导入镜像tar文件为 镜像
注意load用法为:docker load image1:new<image1.tar
docker import 可以导入容器tar文件为 镜像
注意import用法为: cat container1.tar |docker import - container1:new
如何把docker进程把启动文件映射到容器内
1.安装Docker在开始前,我们首先得确保在Linux主机中已经安装了Docker。这里,我运行的是CentOS7主机,我们将运行yum管理器和下面的命令来安装Docker。#yuminstalldocker#systemctlrestartdocker.service2.创建Dockerfile现在,Docker守护进程已经在运行中了,我们现在准备创建自己的FirefoxDocker容器。我们要创建一个Dockerfile,在其中我们要输入需要的配置来创建一个可以工作的Firefox容器。为了运行Docker镜像我们需要使用最新版本的CentOS。要创建Docker镜像,我们需要用文本编辑器创建一个名为Dockerfile的文件。#nanoDockerfile接着,在Dockerfile中添加下面的行并保存。#!/bin/bashFROMcentos:7RUNyuminstall-yfirefox#用你自己的uid/gid替换下面的0RUNexportuid=0gid=0RUNmkdir-p/home/developerRUNechodeveloper:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash>>/etc/passwdRUNechodeveloper:x:${uid}:>>/etc/groupRUNechodeveloperALL=(ALL)NOPASSWD:ALL>>/etc/sudoersRUNchmod0440/etc/sudoersRUNchown${uid}:${gid}-R/home/developerUSERdeveloperENVHOME/home/developerCMD/usr/bin/firefox注意:在第四行的配置中,用你自己的用户和组id来替换0。我们可以用下面的命令在shell或者终端中得到uid和gid。#id$USER3.构造Docker容器下面我们就要根据上面的Dockerfile构建一个容器。它会安装firefox浏览器和它需要的包。它接着会设置用户权限并让它可以工作。这里镜像名是firefox,你可以根据你的需要命名。#dockerbuild--rm-tfirefox.4.运行Docker容器现在,如果一切顺利,我们现在可以在运行在CentOS7镜像中的Docker容器里面运行我们的GUI程序也就是Firefox浏览器了。#dockerrun-ti--rm-eDISPLAY=$DISPLAY-v/tmp/.X11-unix:/tmp/.X11-unixfirefox总结在Docker容器中运行GUI程序是一次很棒的体验,它对你的主机文件系统没有任何的伤害。它完全依赖你的Docker容器。本教程中,我尝试了CentOS7Docker中的Firefox。我们可以用这个技术尝试的GUI程序。
|