这里是我在tomcat部署jenkins通过Dockerfile创建镜像时的报错
tep 1/13 : FROM daocloud.io/library/centos:7
---> 7e6257c9f8d8
Step 2/13 : MAINTAINER yixuan
---> Running in 19f42ea5adff
Removing intermediate container 19f42ea5adff
---> 4de1a4001f6c
Step 3/13 : ENV JAVA_HOME /usr/local/jdk1.8.0_211
---> Running in e5d9821af2c7
Removing intermediate container e5d9821af2c7
---> 7b7ac517c1db
Step 4/13 : ENV TOMCAT_HOME /usr/local/apache-tomcat-8.5.47
---> Running in 1affc371393c
Removing intermediate container 1affc371393c
---> b7667e6c0c10
Step 5/13 : ENV PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
---> Running in 8ecc0786bdc0
Removing intermediate container 8ecc0786bdc0
---> 9c316b911531
Step 6/13 : ENV CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
---> Running in 65210c6051a5
Removing intermediate container 65210c6051a5
---> e79f4f413b03
Step 7/13 : ADD apache-tomcat-8.5.47.tar.gz /usr/local/
---> 3c03a91e0129
Step 8/13 : ADD jdk-8u211-linux-x64.tar.gz /usr/local/
failed to copy files: Error processing tar file(exit status 1): write /jdk1.8.0_211/lib/visualvm/platform/module
s/org-openide-explorer.jar: no space left on device
上述docker报错 no space left on device,指设备上没有剩余空间,centos7 docker容器及镜像默认是安装到/var/lib/docker,下面本机/var下的分区才1G,因此在创建镜像时是报错空间不足。
# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 15G 3.3G 12G 22% /
devtmpfs devtmpfs 979M 0 979M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 9.6M 981M 1% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 xfs 497M 126M 372M 26% /boot
/dev/mapper/centos-home xfs 1014M 33M 982M 4% /home
/dev/mapper/centos-var xfs 1014M 573M 442M 57% /var
tmpfs tmpfs 199M 0 199M 0% /run/user/0
overlay overlay 15G 3.3G 12G 22% /root/docker/overlay2/213048c5a7a78edd7d604043d9a614eae8
03c3e473545bcae1c01fba63710a05/merged
Centos7修改Docker默认存储位置,Centos7安装docker之后,默认的镜像及容器存储路径为/var/lib/docker,可以使用命令docker info查看。
# docker info | grep "Docker Root Dir"
但是该路径默认使用的是系统盘的存储,如果挂载了数据盘,需要把docker的默认存储路径修改至数据盘的挂载目录,则需要修改docker的相关配置。
关闭docker
# systemctl stop docker
创建储存镜像和容器新的目录
# mkdir -p /docker
查看docker服务配置文件路径
# systemctl show --property=FragmentPath docker
FragmentPath=/usr/lib/systemd/system/docker.service
修改配置参数
将–graph /data/docker添加在docker.service文件中的ExecStart字段后面,其中/data/docker为你需要修改的
# vim /usr/lib/systemd/system/docker.service
将:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
修改为:
ExecStart=/usr/bin/dockerd --graph /root/docker -H fd:// --containerd=/run/containerd/containerd.sock
重启并重启服务
# systemctl daemon-reload && systemctl restart docker
再执行docker info时,能看到目录已修改:
# docker info|grep 'Docker Root Dir'
Docker Root Dir: /root/docker
测试
下载一个centos7镜像
# docker pull daocloud.io/library/centos:7
注意:修改了目录你的镜像和容器就会丢失,在修改前记得迁移~这里就不叙说迁移啦!