docker 没有 dockerstart 指令,正确命令是 docker start;升级后旧容器无法启动需分三类兼容问题处理:运行时配置错误、oci 镜像格式不支持、docker-compose 与 docker api 版本不匹配。
docker 没有 docker start 的变体叫 dockerstart 指令,正确命令是 docker start。你遇到的问题——升级 docker 后旧容器无法启动——通常不是靠“换一个指令”就能解决的,而是因为底层运行时配置、镜像格式或守护进程兼容性发生了变化。关键在于修正配置、升级配套组件、或重建环境,而非依赖某个神秘指令。
下面从实际场景出发,分三类典型兼容问题,给出可直接操作的解决路径:
一、启动报错 “Unknown runtime specified docker-runc”
这是 Docker 1.13.x 升级到 18.06+ 后最常见问题,源于 /usr/lib/systemd/system/docker.service 中硬编码了已废弃的 docker-runc 运行时路径。
你需要手动修正服务配置:
- 编辑 systemd 服务文件:
sudo vi /usr/lib/systemd/system/docker.service
- 找到
ExecStart=行,将类似这样的旧配置:--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current
替换为新标准(Docker 18.06+ 默认使用containerd):--add-runtime runc=io.containerd.runc.v2 - 同时确认
--default-runtime=runc(不是docker-runc) - 保存后执行:
sudo systemctl daemon-reload sudo systemctl restart docker
此时再运行 docker start <container></container> 就能正常启动旧容器。
二、拉取/运行镜像时报 “mediaType … not ‘application/vnd.oci.image.manifest.v1+json’”
说明你的 Docker 版本太老(如 1.13.x),不支持 OCI 镜像清单格式。docker start 本身无用,必须升级 Docker 引擎。
推荐操作步骤:
- 卸载旧版(避免冲突):
sudo yum remove docker docker-common docker-selinux docker-engine sudo rm -rf /var/lib/docker
- 添加官方 CE 仓库并安装 18.06 或更高版本(如 20.10+):
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io sudo systemctl enable --now docker
- 验证:
docker version显示 Server API ≥ 1.41,且docker info | grep "Runtimes"包含runc
升级后,docker start 才能配合新版 OCI 兼容的镜像正常工作。
三、docker start 提示 “client version x.x is too new. Maximum supported API version is x.x”
这其实是 docker-compose 版本过高,与 Docker Daemon API 不匹配,和 docker start 本身无关。
快速修复方式:
- 查看当前 compose 版本:
docker-compose --version - 若显示 v2.x 或 1.29+ 以上,而
docker version --format '{{.Server.APIVersion}}'返回1.41,说明不兼容 - 降级到已知兼容版本(如 1.29.2):
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
之后 docker start 和 docker-compose up 才能协同运作。
不复杂但容易忽略











