问题描述
在安装apollo9.0进入 Apollo 环境容器的过程中遇到问题:
[ERROR] Failed to start docker container "apollo_neo_dev_core" based on image: registry.baidubce.com/apollo/apollo-env-gpu:9.0-latest + exit 1
本文仅针对上述描述问题有效,但是本人猜想对于下述问题,应该也可以尝试采用本文的方法解决
--------------------------------------------------------------------
Failed to pull docker image : registry.baidubce.com/apollo/apollo-env-gpu:9.0-latest
--------------------------------------------------------------------
解决过程
执行aem start 这一步的时候,需要拉去docker镜像
拉取完毕后如下:
具体报错信息为:
/bin/bash
docker: Error response from daemon: failed to mount local volume: mount /home/feng/桌面/application-core/.aem/envroot/apollo:/var/lib/docker/volumes/apollo_neo_dev_core_apollo/_data, flags: 0x1000: no such file or directory.
See 'docker run --help'.
+ '[' 127 -ne 0 ']'
+ [[ 0 -eq 1 ]]
+ error 'Failed to start docker container "apollo_neo_dev_core" based on image: registry.baidubce.com/apollo/apollo-env-gpu:9.0-latest'
+ echo -e '[\033[0;31mERROR\033[0m] Failed to start docker container "apollo_neo_dev_core" based on image: registry.baidubce.com/apollo/apollo-env-gpu:9.0-latest'
[ERROR] Failed to start docker container "apollo_neo_dev_core" based on image: registry.baidubce.com/apollo/apollo-env-gpu:9.0-latest
+ exit 1
问题定位
在上述具体的报错信息中关于response from daemon这一部分有一个问题值得注意:就是本人刚接触ubuntu,对Linux的目录结构不熟悉。最开始的时候直接在桌面上按照官方文档安装了docker Engine,后来才根据apollo官方提供的安装脚本在用户目录下直接安装,并且把原来装在桌面上的文件都删了。因此出现该问题的原因极有可能是在第一次安装docker的时候系统自动在桌面上安装了docker的配置文件,而我之后的每次删除仅仅只是删除了可见的文件,对于隐藏的配置文件并没有删除干净,从而导致必要的文件指向桌面。网上看了很多说是可能因为docker挂载网络不正确导致的。
解决方法
卸载docker及其配置文件(简单的卸载docker文件是不可以的,必须还要卸载其配置文件,因为本文中的挂载文件就属于docker的配置文件之一)。
卸载旧版 Docker 是重装 Docker 的必要步骤。如果已经安装了 Docker CE 或 Docker EE,一般可以通过以下命令卸载旧版 Docker:
sudo apt-get remove docker docker-engine docker.io containerd runc
但是!!!该方式卸载的仅仅是docker的镜像,而对于docker engine依赖的 containerd 和 runc 等(这些依赖被docker打包捆绑在 containerd.io 里),总之,一句话,要想干净的卸载docker及其配置文件,可如下执行命令:
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
总结
安装apollo应该在用户主目录下安装,而不是到桌面安装,打开用户目录终端的方式为 Ctrl+Alt+T