- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题类似于Docker is unable to delete a file when building images
但是,路由原因不一样,因为在我的情况下启用了 d_type
。
这是Dockerfile
FROM arm64v8/ubuntu:latest
RUN export DEBIAN_FRONTEND='noninteractive' && \
rm -rf /var/lib/apt/lists/* /tmp/* /usr/share/doc
尝试构建图像时
docker build -t arm64v8-ubuntu-test .
出现以下错误
Sending build context to Docker daemon 3.584kB
Step 1/2 : FROM arm64v8/ubuntu:latest
---> 499b06aa549b
Step 2/2 : RUN export DEBIAN_FRONTEND='noninteractive' && rm -rf /var/lib/apt/lists/* /tmp/* /usr/share/doc
---> Running in 5ff328ef5a57
rm: cannot remove '/usr/share/doc/sed': Directory not empty
rm: cannot remove '/usr/share/doc/libpam-modules': Directory not empty
rm: cannot remove '/usr/share/doc/util-linux': Directory not empty
rm: cannot remove '/usr/share/doc/mawk': Directory not empty
rm: cannot remove '/usr/share/doc/gnupg': Directory not empty
rm: cannot remove '/usr/share/doc/apt': Directory not empty
rm: cannot remove '/usr/share/doc/libreadline6': Directory not empty
rm: cannot remove '/usr/share/doc/adduser/examples/adduser.local.conf.examples': Directory not empty
rm: cannot remove '/usr/share/doc/passwd': Directory not empty
rm: cannot remove '/usr/share/doc/mount': Directory not empty
rm: cannot remove '/usr/share/doc/procps': Directory not empty
The command '/bin/sh -c export DEBIAN_FRONTEND='noninteractive' && rm -rf /var/lib/apt/lists/* /tmp/* /usr/share/doc' returned a non-zero code: 1
我的 docker 信息是
$ docker info
Containers: 7
Running: 1
Paused: 0
Stopped: 6
Images: 95
Server Version: 17.10.0-ce
Storage Driver: overlay
Backing Filesystem: extfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: active
NodeID: mjm8vu1ixmw1ls25dk7gomiva
Is Manager: true
ClusterID: lnspgxtrca8d4lm3kfv7zbz77
Managers: 3
Nodes: 3
Orchestration:
Task History Retention Limit: 5
Raft:
Snapshot Interval: 10000
Number of Old Snapshots to Retain: 0
Heartbeat Tick: 1
Election Tick: 3
Dispatcher:
Heartbeat Period: 5 seconds
CA Configuration:
Expiry Duration: 3 months
Force Rotate: 0
Autolock Managers: false
Root Rotation In Progress: false
Node Address: 10.0.4.71
Manager Addresses:
10.0.4.71:2377
10.0.4.72:2377
10.0.4.73:2377
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 0351df1c5a66838d0c392b4ac4cf9450de844e2d
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 3.14.79-27-ARCH
Operating System: Arch Linux ARM
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 1.928GiB
Name: alarm-docker-manager-host
ID: Y5ZZ:5G3O:KIE2:MSQX:7MBB:XWOZ:CYLL:2SSY:GTMB:YCBG:4TTT:EJVN
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
手动运行容器和尝试执行命令有相同的结果,例如
$ docker run --rm -it arm64v8/ubuntu:latest bash
root@87a3ea8fecdd:~# rm -rf /var/lib/apt/lists/* /tmp/* /usr/share/doc
rm: cannot remove '/usr/share/doc/sed': Directory not empty
rm: cannot remove '/usr/share/doc/libpam-modules': Directory not empty
rm: cannot remove '/usr/share/doc/util-linux': Directory not empty
rm: cannot remove '/usr/share/doc/mawk': Directory not empty
rm: cannot remove '/usr/share/doc/gnupg': Directory not empty
rm: cannot remove '/usr/share/doc/apt': Directory not empty
rm: cannot remove '/usr/share/doc/libreadline6': Directory not empty
rm: cannot remove '/usr/share/doc/adduser/examples/adduser.local.conf.examples': Directory not empty
rm: cannot remove '/usr/share/doc/passwd': Directory not empty
rm: cannot remove '/usr/share/doc/mount': Directory not empty
rm: cannot remove '/usr/share/doc/procps': Directory not empty
此外,权限似乎很好,目录在那里,并且没有被其他进程使用
root@87a3ea8fecdd:/# ls -lah /
total 68K
drwxr-xr-x 1 root root 4.0K Oct 19 06:43 .
drwxr-xr-x 1 root root 4.0K Oct 19 06:43 ..
-rwxr-xr-x 1 root root 0 Oct 19 06:43 .dockerenv
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 bin
drwxr-xr-x 2 root root 4.0K Apr 12 2016 boot
drwxr-xr-x 5 root root 360 Oct 19 06:44 dev
drwxr-xr-x 1 root root 4.0K Oct 19 06:43 etc
drwxr-xr-x 2 root root 4.0K Apr 12 2016 home
drwxr-xr-x 8 root root 4.0K Oct 19 05:39 lib
drwxr-xr-x 2 root root 4.0K Oct 6 01:43 media
drwxr-xr-x 2 root root 4.0K Oct 6 01:43 mnt
drwxr-xr-x 2 root root 4.0K Oct 6 01:43 opt
dr-xr-xr-x 143 root root 0 Oct 19 06:43 proc
drwx------ 2 root root 4.0K Oct 19 05:39 root
drwxr-xr-x 5 root root 4.0K Oct 6 01:44 run
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 sbin
drwxr-xr-x 2 root root 4.0K Oct 6 01:43 srv
dr-xr-xr-x 12 root root 0 Oct 19 06:43 sys
drwxrwxrwt 2 root root 4.0K Oct 6 01:44 tmp
drwxr-xr-x 10 root root 4.0K Oct 19 05:39 usr
drwxr-xr-x 11 root root 4.0K Oct 19 05:39 var
root@87a3ea8fecdd:/# ls -lah /var/lib/apt
total 24K
drwxr-xr-x 6 root root 4.0K Oct 19 05:39 .
drwxr-xr-x 11 root root 4.0K Oct 19 05:39 ..
-rw-r--r-- 5 root root 0 Oct 6 01:44 extended_states
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 keyrings
drwxr-xr-x 2 root root 4.0K Oct 11 14:01 lists
drwxr-xr-x 3 root root 4.0K Oct 19 05:39 mirrors
drwxr-xr-x 2 root root 4.0K Apr 14 2016 periodic
root@87a3ea8fecdd:/# ls -lah /usr/share
total 160K
drwxr-xr-x 40 root root 4.0K Oct 19 05:39 .
drwxr-xr-x 10 root root 4.0K Oct 19 05:39 ..
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 adduser
drwxr-xr-x 3 root root 4.0K Oct 19 05:39 apport
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 base-files
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 base-passwd
drwxr-xr-x 3 root root 4.0K Oct 19 05:39 bash-completion
drwxr-xr-x 6 root root 4.0K Oct 19 05:39 bug
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 common-licenses
drwxr-xr-x 4 root root 4.0K Oct 19 05:39 dbus-1
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 debconf
drwxr-xr-x 2 root root 4.0K Oct 19 05:39 debianutils
drwxr-xr-x 2 root root 4.0K Apr 12 2016 dict
drwxr-xr-x 94 root root 4.0K Oct 19 05:39 doc
...
root@df3ef4561fc3:/# lsof /usr/share/doc
root@df3ef4561fc3:/# rm -rf /usr/share/doc
rm: cannot remove '/usr/share/doc/sed': Directory not empty
rm: cannot remove '/usr/share/doc/libpam-modules': Directory not empty
rm: cannot remove '/usr/share/doc/util-linux': Directory not empty
rm: cannot remove '/usr/share/doc/mawk': Directory not empty
rm: cannot remove '/usr/share/doc/gnupg': Directory not empty
rm: cannot remove '/usr/share/doc/apt': Directory not empty
rm: cannot remove '/usr/share/doc/libreadline6': Directory not empty
rm: cannot remove '/usr/share/doc/adduser/examples/adduser.local.conf.examples': Directory not empty
rm: cannot remove '/usr/share/doc/passwd': Directory not empty
rm: cannot remove '/usr/share/doc/mount': Directory not empty
rm: cannot remove '/usr/share/doc/procps': Directory not empty
rmdir 也不行
root@df3ef4561fc3:/# rmdir /usr/share/doc
rmdir: failed to remove '/usr/share/doc': Directory not empty
root@df3ef4561fc3:/# lsof /usr/share/doc
直接运行rm命令也是如此
$ docker run --rm -it arm64v8/ubuntu:latest rm -rf /usr/share/doc
rm: cannot remove '/usr/share/doc/sed': Directory not empty
rm: cannot remove '/usr/share/doc/libpam-modules': Directory not empty
rm: cannot remove '/usr/share/doc/util-linux': Directory not empty
rm: cannot remove '/usr/share/doc/mawk': Directory not empty
rm: cannot remove '/usr/share/doc/gnupg': Directory not empty
rm: cannot remove '/usr/share/doc/apt': Directory not empty
rm: cannot remove '/usr/share/doc/libreadline6': Directory not empty
rm: cannot remove '/usr/share/doc/adduser/examples/adduser.local.conf.examples': Directory not empty
rm: cannot remove '/usr/share/doc/passwd': Directory not empty
rm: cannot remove '/usr/share/doc/mount': Directory not empty
rm: cannot remove '/usr/share/doc/procps': Directory not empty
还有 sudo
$ sudo docker run --rm -it arm64v8/ubuntu:latest rm -rf /usr/share/doc
rm: cannot remove '/usr/share/doc/sed': Directory not empty
rm: cannot remove '/usr/share/doc/libpam-modules': Directory not empty
rm: cannot remove '/usr/share/doc/util-linux': Directory not empty
rm: cannot remove '/usr/share/doc/mawk': Directory not empty
rm: cannot remove '/usr/share/doc/gnupg': Directory not empty
rm: cannot remove '/usr/share/doc/apt': Directory not empty
rm: cannot remove '/usr/share/doc/libreadline6': Directory not empty
rm: cannot remove '/usr/share/doc/adduser/examples/adduser.local.conf.examples': Directory not empty
rm: cannot remove '/usr/share/doc/passwd': Directory not empty
rm: cannot remove '/usr/share/doc/mount': Directory not empty
rm: cannot remove '/usr/share/doc/procps': Directory not empty
这未在 Docker Issues 中列为已知问题。如何进一步调试问题?
最佳答案
在 Docker overlay storage driver unable to delete directories from underlying image layer #35257 将其报告为问题后, 感谢 thaJeztah,我查到了真相。
记录在 https://docs.docker.com/engine/userguide/storagedriver/overlayfs-driver/ ,覆盖存储驱动程序需要内核版本 3.18 或更高版本。
我的系统使用图像 ArchLinuxARM-odroid-c2-latest.tar.gz它具有较旧的内核版本 3.14。
出现此问题是因为 ALARM docker 包默认配置了覆盖驱动程序,该驱动程序仅适用于较新的内核版本(例如 ODROID-C2 的 RPi 镜像或主线内核)。
因此,解决方案是要么
关于Docker在构建镜像时无法删除目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824425/
我需要将 OCI 镜像 list 转换为 Docker v2.2 镜像格式,反之亦然。但我找不到两者之间的任何区别,是否有任何实际区别或它们相同? 最佳答案 Docker 镜像 list V 2,模式
LNMP 是代表 Linux 系统下的 Nginx、Mariadb、PHP 相结合而构建成的动态网站服务器架构。下面使用docker制作分布式lnmp 镜像。 1、docker 分布式 lnmp
你好,我创建了一个基础镜像;但是,每当我运行 docker build . 时,我都看不到成功构建 我的 docker 文件 FROM centos:7 ARG user=john ARG home=
我想要我的 iPhone 应用程序中有一个功能,可以将图像转换为类似镜像的方式。 就像如果有一个左手举起的人的图像,那么转换后的图像必须有右手举起的同一个人。 任何代码或链接将不胜感激 预先感谢您的帮
我们希望将一个Elasticsearch集群放置在kubernetes集群的顶部(当前有2个节点,但是我们计划增加它)。 是否可以通过使集群中的每个节点包含相同数据的方式配置elasticsearch
我试图了解 docker 如何在文件系统上存储图像和图层。构建图像时,图层出现在 /var/lib/docker/image/overlay2/layerdb 中,图像出现在 /var/lib/doc
所以我最近开始使用 docker,因为我认为让我的网站 dockerised 会很好。我有一个 super 简单的 docker-compose.yml 文件,其中仅包含 wordpress:late
我有一个 docker 镜像,叫它 dockerimage/test。每次我更新它时,我都会增加一个标签,所以 dockerimage/test:1、dockerimage/test:2 等等。 当我
我开始使用 Docker,我发现我可以将主图像存储库放在不同的磁盘上(符号链接(symbolic link)/var/lib/docker 到其他位置)。 但是,现在我想看看是否有办法将它拆分到多个磁
显然应用程序打包和部署似乎有两种做法 创建 Docker 镜像并部署它 从头开始构建和部署应用程序。 我对如何使用选项 1) 感到困惑。前提是你获取一个 docker 镜像并在任何平台上重复使用它。但
我有一个 UIView具有透明背景和一些按钮。我想捕获 View 的绘图,将其缩小,然后在屏幕上的其他位置重新绘制(镜像)它。 (在另一个 View 之上。)按钮可以更改,因此它不是静态的。 最好的方
我正在为一个项目编写测试,我想测试和验证一个 docker 镜像构建。但我不想推送图像。 我希望图像构建在 CI(如 taskcluster)上并运行测试。 最佳答案 您需要使用 taskcluste
我想复制每个 html 页面中的代码,同时添加一些更改: 例子: Any text (even if includes :., 输出: Any text (even if includes :.,
我使用三星 ARM Cortex A9 Exynos4412 板。我在板上启动“linux + Qt”img。但是板上没有包管理器,也没有 make 、 gcc 命令。在/bin 文件中有文件 Bus
是否有可能以某种方式设置一个 git 存储库,该存储库像通常的 --mirror 一样用于 pull 入它,但在将从推送到另一个存储库时没有强制? 最佳答案 您可以像这样添加 --no-force 来
背景 最近在巡检过程中,发现harbor存储空间使用率已经达到了80%。于是,去看了一下各项目下的镜像标签数。发现有个别项目下的镜像标签数竟然有好几百个。细问之下得知,该项目目前处于调试阶段
以下均在centos 7进行的操作 docker安装 ? 1
我知道如何删除 N 天前创建的旧 Docker 镜像。 See here 但我真正想做的是删除过去 N 天未使用的旧 Docker 镜像。 目标是保留经常使用的图像,即使在我进行清理时没有容器实际使用
我有一个自定义的 docker 镜像,已经构建好了。没有可用的 Dockerfile。在容器内部,可以使用自定义用户,而不是 root,比如 test。此用户已附加到组 test。这是容器的默认用户。
我有一个开发数据库,我想将其提交到 docker 镜像中,然后推送到私有(private)存储库并用于本地开发和 CI 构建。 数据库保存为SQL备份,我可以通过将备份文件映射到官方镜像的/doc
我是一名优秀的程序员,十分优秀!