在低内存(如1核2G)的云服务器上,Docker 及其守护进程(dockerd、containerd)即使在没有运行容器时也会占用约 100MB-150MB 的内存。为了给 Web 服务(如 PHP/MySQL)腾出空间,我们可以手动管理 Docker 的开关。
1. 关闭 Docker (释放内存)
当你暂时不需要使用 Docker 容器时,执行以下命令完全停止相关服务:
# 1. 停止服务
sudo systemctl stop docker docker.socket containerd
# 2. 禁止开机自启
sudo systemctl disable docker docker.socket containerd
# 3. 彻底屏蔽(可选:防止被其他服务意外唤醒,最省内存的操作)
# 如果你之前执行过这步,开启时必须 unmask
sudo systemctl mask docker docker.socket containerd
2. 开启 Docker (恢复使用)
当需要运行 Docker 容器时,执行以下命令恢复服务:
# 1. 解除屏蔽(防止之前执行了 mask)
sudo systemctl unmask docker docker.socket containerd
# 2. 启动服务
sudo systemctl start containerd
sudo systemctl start docker
# 3. 设置开机自启(可选)
sudo systemctl enable docker docker.socket containerd
# 4. 验证是否启动成功
docker ps
3. 常用容器管理命令
开启 Docker 服务后,你可能需要管理具体的容器:
查看容器状态
# 查看正在运行的容器
docker ps
# 查看所有容器(包括已停止的)
docker ps -a
启动/停止特定容器
# 启动名为 my_app 的容器
docker start [容器ID或名称]
# 停止名为 my_app 的容器
docker stop [容器ID或名称]
# 重启容器
docker restart [容器ID或名称]
4. 故障排查
如果你在启动时看到报错:Failed to start docker.service: Unit is masked.
解决方法:
运行 sudo systemctl unmask docker docker.socket containerd 后再次尝试启动。





Comments NOTHING