You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建报错:COPY /lib/x86_64-linux-gnu/libc.so.6文件未找到

解决Ubuntu 18.04 Docker镜像构建中COPY libc.so.6失败的问题

问题描述

构建基于ubuntu:18.04的Docker镜像时,执行COPY /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/命令报错,提示文件未找到。

完整Dockerfile

FROM ubuntu:18.04

ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && apt-get install -y apt-utils apt-transport-https && \
    apt-get install -y  lib32z1 xinetd && \
    apt-get -y dist-upgrade

RUN useradd -m ctf

WORKDIR /home/ctf

RUN cp -Rf /lib* /home/ctf && \
    cp -Rf /usr/lib* /home/ctf

COPY /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/
ENV LD_LIBRARY_PATH=/usr/local/lib/
RUN ldconfig


RUN mkdir /home/ctf/dev && \
    mknod /home/ctf/dev/null c 1 3 && \
    mknod /home/ctf/dev/zero c 1 5 && \
    mknod /home/ctf/dev/random c 1 8 && \
    mknod /home/ctf/dev/urandom c 1 9 && \
    chmod 666 /home/ctf/dev/*

RUN mkdir /home/ctf/bin && \
    cp /bin/sh /home/ctf/bin && \
    cp /bin/ls /home/ctf/bin && \
    cp /bin/cat /home/ctf/bin

COPY ./ctf.xinetd /etc/xinetd.d/ctf
COPY ./xinetedService.sh /xinetedService.sh
RUN echo "Blocked by ctf_xinetd" > /etc/banner_fail

RUN chmod +x /xinetedService.sh

COPY ./files/ /home/ctf/
RUN chown -R root:ctf /home/ctf && \
    chmod -R 750 /home/ctf && \
    chmod 740 /home/ctf/flag.txt

CMD ["/xinetedService.sh"]

EXPOSE 9999

错误日志

=> ERROR [ 6/15] COPY /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/                                                                                                                   0.0s
------
 > [ 6/15] COPY /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/:
------
Dockerfile:16
--------------------
  14 |         cp -Rf /usr/lib* /home/ctf
  15 |     
  16 | >>> COPY /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/
  17 |     ENV LD_LIBRARY_PATH=/usr/local/lib/
  18 |     RUN ldconfig
--------------------
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref a298254a-94ff-4e45-b581-67b72180e20a::opz82ic9gri5w5vumh2zpzlew: "/lib/x86_64-linux-gnu/libc.so.6": not found

解决方案

核心问题

COPY命令是从宿主机的构建上下文目录复制文件到容器内,你指定的/lib/x86_64-linux-gnu/libc.so.6是容器内部的路径,宿主机上不存在该路径(或路径不匹配),因此报错文件未找到。

修复步骤

将Dockerfile中的COPY命令替换为RUN cp命令,在容器内部执行复制操作:

# 替换前
COPY /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/

# 替换后
RUN cp /lib/x86_64-linux-gnu/libc.so.6 /usr/local/lib/

解释

RUN命令在镜像构建过程中执行容器内的shell命令,此时基于ubuntu:18.04镜像的容器内已经存在/lib/x86_64-linux-gnu/libc.so.6文件,用cp命令可直接在容器内部完成文件复制,不会出现路径不存在的问题。

替换后重新构建镜像即可解决该错误。

内容的提问来源于stack exchange,提问作者NobinPegasus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 23:44:59