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

在全新Ubuntu Docker镜像中安装Python3遇Errno13权限拒绝错误

问题:Docker容器内安装Python3时权限拒绝错误

环境与操作流程

  • 宿主机:ESXi上创建的Ubuntu 22.04 LTS虚拟机,采用LVM分区(50GB为根目录,250GB单独挂载为/var),安装系统时附带Docker和Prometheus
  • Docker版本:初始为20.10.17,升级至20.10.22后问题依旧
  • 核心操作:
    1. 拉取Ubuntu镜像:docker pull ubuntu
    2. 启动容器:docker run -it ubuntu
    3. 容器内以root身份执行:apt update && apt install python3
  • 关键错误:
    [Errno 13] Permission denied: '/usr/lib/python3.10/__pycache__/__future__.cpython-310.pyc.139849676216832'
    dpkg: error processing package python3.10-minimal (--configure):
     installed python3.10-minimal package post-installation script subprocess returned error exit status 1
    
    已确认/usr/lib/python3.10/__pycache__/目录及文件权限为-rw-r--r--,操作全程以root身份执行。

解决方案

1. 检查宿主机/var挂载参数

由于/var挂载在单独LVM卷,需确认挂载是否包含限制容器的参数:

mount | grep /var

确保没有noexec、nodev这类限制选项,若存在,修改/etc/fstab中的挂载配置,移除限制参数后重新挂载:

sudo mount -o remount,rw /var

2. 清理Docker缓存并重新拉取镜像

镜像文件损坏可能导致权限异常,执行以下命令清理后重新拉取:

docker rmi ubuntu
docker system prune -a
docker pull ubuntu

重启容器后再次尝试安装Python3。

3. 手动预处理缓存目录权限

在容器内安装Python3前,手动创建并放宽缓存目录权限:

mkdir -p /usr/lib/python3.10/__pycache__
chmod 777 /usr/lib/python3.10/__pycache__
apt install -y python3
# 安装完成后可恢复默认权限
chmod 755 /usr/lib/python3.10/__pycache__

4. 临时关闭AppArmor规则测试

Ubuntu默认的AppArmor可能限制容器文件系统操作,临时关闭Docker对应的规则:

sudo aa-disable docker-default
sudo systemctl restart docker

若问题解决,需调整AppArmor规则而非永久关闭。

5. 替换系统自带Docker为官方版本

系统安装时附带的Docker可能存在配置缺陷,卸载后用官方脚本重新安装:

# 卸载现有Docker组件
sudo apt purge docker.io docker-compose docker-ce docker-ce-cli containerd.io -y
sudo rm -rf /var/lib/docker /var/lib/containerd
# 官方脚本安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable --now docker

重新测试容器内的Python3安装操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:45:21