一、问题:在vmware虚拟机中测试以docker方式安装的prometheus,当重启虚拟机后,再次运行prometheus的执行文件,提示已有名称为prometheus的容器存在。
二、处理过程
1、使用docker container ls看不到容器条目
2、使用docker start prometheus启动容器,再使用docker container ls就可以看到prometheus的容器条目了。
3、上述过程说明prometheus的容器在重启虚拟机的过程中并不会自动卸载,仅仅处于停止状态。
4、为确认上述过程,使用命令docker inspect prometheus查看prometheus容器的配置内容,包括id等,再反复使用docker stop prometheus和docker start prometheus命令,可看到同一个id的容器处于停止或启动状态。
5、由此分析,prometheus的启动命令(docker run -d -p 9090:9090 -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml -v $PWD/prometheus-data:/prometheus --name prometheus prom/prometheus),其实质是建立docker容器的命令。若此容器还存在的状态下重启虚拟机,则此容器仍然不会消失,仅处于停止状态,可使用docker start prometheus命令恢复运行。
6、若需要再次使用prometheus的容器建立命令(docker run -d -p 9090:9090 -v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml -v $PWD/prometheus-data:/prometheus --name prometheus prom/prometheus)而不会与已存在的prometheus冲突的话,需要先停止容器(docker stop prometheus),移除容器(docker rm prometheus)才可。