在项目的/apollo-master/docker/scripts目录下有cyberrt环境,dev环境、runtime环境的创建和进入脚本。其中*_start.sh
是创建容器的脚本,*_into.sh
是进入容器的脚本。
其中*_start.sh
的内容比较多,比较难理解,简单讲,这个脚本会先拉取一个基础的docker镜像。
拉取深度学习模型镜像,地图资源镜像,利用后拉取的辅助镜像创建docker volume。
能看到基础的镜像为apolloauto/apollo:dev-x86_64-18.04-20221124_1708
其余都是辅助镜像。
函数 docker_restart_volume()
用于重新创建一个指定名称和指定路径的 Docker Volume,并且指定使用哪个 Docker Image 来初始化 Volume 内容。该函数会首先拉取指定的 Docker Image,然后移除原有的 Volume 并重新创建一个新的 Volume,最后使用 Docker Image 中的内容来填充该 Volume。
函数中的这一句用docker run来创建Docker Volume,这种方式是我第一次见到,所以记录下
docker run -v "${volume}":"