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

Ubuntu执行apt-get更新后Portainer容器消失且无法重新部署

解决方案

1. 排查并修复只读文件系统问题

检查分区挂载状态

执行命令查看根分区是否被挂载为只读:

mount | grep ' / '

若输出包含 ro(只读标识),立即重新挂载为读写模式:

sudo mount -o remount,rw /

如果/docker目录位于单独分区,同样检查该分区的挂载状态:

mount | grep '/docker'

存在只读挂载时执行对应分区的重新挂载命令。

修复文件系统错误

只读挂载通常是系统检测到文件系统损坏后的保护机制,需按以下步骤修复:

  1. 切换至单用户模式(或使用Ubuntu Live CD启动系统)
  2. 卸载目标分区(例如根分区/dev/sda1):
    sudo umount /dev/sda1
    
  3. 执行文件系统检查:
    sudo fsck -f /dev/sda1
    

按提示完成修复后重启系统。

2. 修复Docker套接字权限问题

验证套接字权限配置

检查/var/run/docker.sock的权限:

ls -l /var/run/docker.sock

正常输出应类似:srw-rw---- 1 root docker 0 ... /var/run/docker.sock

修正权限设置

若权限不符,执行以下命令修复:

sudo chmod 660 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock

重启Docker服务

sudo systemctl restart docker

3. 重新部署Portainer容器

确保Portainer以正确权限运行,使用以下命令重新部署:

sudo docker run -d -p 9000:9000 -p 9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

4. 极端情况:彻底重置Docker环境(需先备份数据)

若上述方法无效,备份重要容器数据后,彻底清理并重新安装Docker:

# 停止Docker相关服务
sudo systemctl stop docker
sudo systemctl stop docker.socket

# 清理Docker数据目录
sudo rm -rf /var/lib/docker

# 卸载Docker组件
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo apt-get autoremove
sudo apt-get autoclean

# 重新安装Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 将当前用户加入docker组
sudo usermod -aG docker $USER

# 重新部署Portainer
sudo docker run -d -p 9000:9000 -p 9443:9443 \
  --name portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:45:50