我遇到了一个例外
openj9-openjdk-jdk9/.git/HEAD
Error processing tar file(exit status 1): write /root/openj9-openjdk-jdk9/.git/objects/pack/pack-203ba520304c417be0828d545d85ffd13566ac41.pack: no space left on device
,并且弹出图显示“ / root”在执行命令时只有672M可用:
docker build -t openj9 -f Dockerfile .
Dockerfile是
FROM ubuntu:16.04
RUN apt-get update \
&& apt-get install -qq -y --no-install-recommends \
autoconf \
ca-certificates \
ccache \
cpio \
file \
g++-4.8 \
gcc-4.8 \
git \
git-core \
libasound2-dev \
libcups2-dev \
libelf-dev \
libfreetype6-dev \
libnuma-dev \
libx11-dev \
libxext-dev \
libxrender-dev \
libxt-dev \
libxtst-dev \
make \
openjdk-8-jdk \
pkg-config \
realpath \
ssh \
unzip \
wget \
zip \
&& rm -rf /var/lib/apt/lists/*
COPY openj9-openjdk-jdk9.tar.gz /root/
COPY freemarker.tgz /root/
# Create links for c++,g++,cc,gcc
RUN ln -s g++ /usr/bin/c++ \
&& ln -s g++-4.8 /usr/bin/g++ \
&& ln -s gcc /usr/bin/cc \
&& ln -s gcc-4.8 /usr/bin/gcc
# Download and setup freemarker.jar to /root/freemarker.jar
RUN cd /root \
# && wget https://sourceforge.net/projects/freemarker/files/freemarker/2.3.8/freemarker-2.3.8.tar.gz/download -O freemarker.tgz \
&& tar -xzf freemarker.tgz freemarker-2.3.8/lib/freemarker.jar --strip=2 \
&& rm -f freemarker.tgz \
&& tar xvf openj9-openjdk-jdk9.tar.gz \
&& rm -f openj9-openjdk-jdk9.tar.gz
WORKDIR /root
执行tar xvf openj9-openjdk-jdk9.tar.gz
时发生错误。
令我困惑的是,目录/root
所在的分区仍然有很大的空间,即4.3G,如下所示。
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 778M 78M 701M 10% /run
/dev/sda1 32G 27G 4.3G 86% /
tmpfs 3.8G 113M 3.7G 3% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/loop0 90M 90M 0 100% /snap/core/6673
/dev/loop1 90M 90M 0 100% /snap/core/6818
/dev/loop2 141M 141M 0 100% /snap/webdingding/1
/dev/loop3 92M 92M 0 100% /snap/core/6531
/dev/loop4 254M 254M 0 100% /snap/electronic-wechat/7
/dev/sda6 31G 1.1G 29G 4% /opt
/dev/sda5 38G 25G 11G 71% /home
/dev/sdb7 52G 25G 25G 50% /home_bak
/dev/sdb5 37G 28G 7.4G 79% /backup
/dev/sdb8 81G 68G 8.8G 89% /opt1
/dev/sdb6 97G 72G 20G 79% /other
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 778M 172K 778M 1% /run/user/1000
所以,我的两个主要问题是:
如何理解容器中的路径?容器路径/root
是否与主机中的绝对路径/root
相同,还是已映射到主机中的某些其他路径?
问题的解决方案。我尝试了this one,但失败了。由于容器日志文件很小
root @ shijie:〜#du -d1 -h / var / lib / docker / containers
40K /var/lib/docker/containers/f41f43b5a4372dda5e2aba71c3ae8cc58170b2f13183e22942fa62747910ac7a
44K /var/lib/docker/containers
[更新]
我还清除了containers
和images
,然后重新执行命令,结果是相同的。
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f41f43b5a437 b68439663072 "/bin/sh -c 'cd /roo…" 2 hours ago Exited (0) 2 hours ago brave_albattani
sudo docker rm f41f43b5a437
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> b68439663072 2 hours ago 1.66GB
ubuntu 16.04 a3551444fc85 2 weeks ago 119MB
sudo docker rmi b68439663072 a3551444fc85
sudo docker images -aq -f 'dangling=true'
##没有悬空的图像..
答案 0 :(得分:1)
/var/lib/docker
中,因此容器中的每个路径都是绝对在容器内部,但相对于您的Docker根路径(即:/var/lib/docker/containers
)< / li>
docker system df
。为了清除docker当前未使用的所有内容,您可以执行以下命令docker system prune
。否则,您可以仅指定要清除的资源(例如docker container prune
)。