• docker重启提示已存在一个容器的问题处理


    一、问题:在vmware虚拟机中测试以docker方式安装的prometheus,当重启虚拟机后,再次运行prometheus的执行文件,提示已有名称为prometheus的容器存在。

    二、处理过程

    1、使用docker container ls看不到容器条目(使用docker container ls -a可以看到已存在而未启动的容器。)

    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)才可。

    三、配置prometheus开机启动

    1、修改/etc/rc.d/rc.local文件属性,添加执行权限 (默认情况下,/etc/rc.d/rc.local是没有执行权限的)

    [root@ELK ~]# chmod +x /etc/rc.d/rc.local

    2、在/etc/rc.d/rc.local中添加prometheus容器启动脚本命令

    [root@ELK ~]# vi /etc/rc.d/rc.local

    ...

    docker start prometheus

    四、重启vmware虚拟机测试,prometheus运行正常。

    [root@ELK ~]# docker container ls
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    8d969b5e3765 prom/prometheus "/bin/prometheus --c…" 2 hours ago Up 18 seconds 0.0.0.0:9090->9090/tcp prometheus

  • 相关阅读:
    Qt 数据库篇
    js字符串函数(转)
    如何解决IE无法识别html5中的新标签(article、abbr、header等)
    web多页打印问题
    诡异的Spinner级联样式
    discuz x2用户删除了,帖子不能用了,恢复帖子的办法
    创业公司如何招聘优秀工程师
    清除目录下的SVN信息
    .NET 项目SVN 全局排除设置
    编程技术面试的五大要点
  • 原文地址:https://www.cnblogs.com/sfccl/p/12908866.html
Copyright © 2020-2023  润新知