zoukankan      html  css  js  c++  java
  • Docker学习4-学会如何让容器开机自启服务【坑】

    前言

    小龙亲测重启服务器后 docker 容器没跑起来,相信有不少小伙伴在用docker部署容器的时候也发现每次开机服务就没有自启了,需要手动去执行把容器服务开启起来,但有没有可以让它开机自启呢?显然是有的。

    一、收集需要自启的容器id或name

    1、以mysql5.7的容器name为例,查询容器:

    [root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps -a
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    bb665f57e66b mysql:5.7 "docker-entrypoint.s…" 7 days ago Exited (0) 8 minutes ago mysql

    2、根据上面的容器name,我们手动运行启动一下,可多个。

    [root@iZbp19lugf22zbsubsf1y6Z ~]# docker start mysql
    mysql

    3、查看已运行的容器,可以看到我们手动是这样的一个操作来完成启动

    [root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    bb665f57e66b mysql:5.7 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 33060/tcp, 0.0.0.0:3310->3306/tcp mysql

    二、利用 shell 脚本来完成手动运行容器命令

    1、增加一个sh脚本:vi start.sh

    [root@iZbp19lugf22zbsubsf1y6Z ~]# vi start.sh

    2、编辑一个启动命令把保存退出即可,容器name为例:docker start mysql

    3、自测一下运行 start.sh 脚本,可以正常启动没问题的。

    [root@iZbp19lugf22zbsubsf1y6Z ~]# . start.sh
    mysql

    三、认识能开机自启的文件:/etc/rc.d/rc.local

    1、我们将 . start.sh 脚本添加至:/etc/rc.d/rc.local

    echo ". ~/start.sh">> /etc/rc.d/rc.local

    2、查看是否已添加:cat /etc/rc.d/rc.local

    3、设置 rc.local 文件权限:chmod +x /etc/rc.d/rc.local

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

    4、完成上面的操作后,就可以:reboot 试一下啦,连接后查看运行中容器:docker ps。

    [root@iZbp19lugf22zbsubsf1y6Z ~]# reboot
    
    Press Ctrl+C to cancel or Enter to reconnect immediately.
    Reconnecting in 1 seconds...
    [root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    bb665f57e66b mysql:5.7 "docker-entrypoint.s…" 22 minutes ago Up 8 seconds 33060/tcp, 0.0.0.0:3310->3306/tcp mysql

    显然这一操作很有必要学会哦,不然每次重启都需要手动去启动,是在太麻烦了。以前是我不会,但是最后还有一种更方便是自带的方法:

    创建容器时添加参数自启: --restart=always

    如果前面已经创建容器了那么可以这样:docker container update --restart=always 容器名字

    欢迎来QQ交流群:482713805

  • 相关阅读:
    mybatis总结(五)(延迟加载)
    mybatis总结(四)(mybatis的动态sql)
    mybatis总结(三)(resultMap和高级映射-级联)
    mybatis总结(二)(mybatis的基本增删改查实例说明)
    mybatis总结(一)(mybatis的基本定义介绍)
    法门扫地僧简历经验分享
    法门扫地僧面试宝典第五版
    关于https不支持http的解决方案
    浏览器渲染原理
    前端面试宝典第三版
  • 原文地址:https://www.cnblogs.com/gsxl/p/11830147.html
Copyright © 2011-2022 走看看