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

如何在Docker容器中安装curl?权限与网络问题排查解决

Dockerfile安装curl遇到权限与网络问题的解决

初始问题与错误分析

用户的初始Dockerfile:

FROM jupyter/scipy-notebook

#RUN apt-get update && apt-get install -y curl

RUN pip install mlflow

RUN pip install sklearn

RUN apt-get update && apt-get install -y curl

执行构建命令:

docker build -t mycontainer .

出现权限错误:

Step 4/4 : RUN apt-get update && apt-get install -y curl
 ---> Running in 5defd9816a22
Reading package lists...
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
The command '/bin/bash -o pipefail -c apt-get update && apt-get install -y curl' returned a non-zero code: 100

原因:jupyter/scipy-notebook镜像默认使用非root用户(jovyan)运行,而apt-get操作需要root权限,因此触发权限拒绝错误。

权限问题的解决方案

修改Dockerfile,先切换到root用户执行apt安装操作,完成后可按需切回原非root用户(保持镜像安全性):

FROM jupyter/scipy-notebook

RUN pip install mlflow
RUN pip install sklearn

# 切换到root用户
USER root
# 执行apt更新与curl安装
RUN apt-get update && apt-get install -y curl
# 切换回默认非root用户(可选)
USER jovyan

后续网络问题及解决

应用上述方案后出现DNS解析错误:

Step 4/7 : USER root
 ---> Running in aa6a1b7a023f
Removing intermediate container aa6a1b7a023f
 ---> 59e87b9598b2
Step 5/7 : RUN apt-get update && apt-get install -y curl
 ---> Running in 4440ce61ebc6
Err:1 http://security.ubuntu.com/ubuntu focal-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
Err:2 http://archive.ubuntu.com/ubuntu focal InRelease
  Temporary failure resolving 'archive.ubuntu.com'
...
E: Unable to locate package curl

原因:当前网络环境无法解析Ubuntu软件源的域名,导致无法更新包列表和下载curl。

解决方法:更换网络环境(如切换到公共网络、配置正确的代理或DNS)后,问题得以解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:20:43