Docker开机自启及容器自启

原文地址:https://www.jianshu.com/p/f6e8fb577f3f

主要内容:Docker开启自启,run命令启动的容器自启,docker-compose启动的服务自动启动,swarm启动的服务自动启动;

Docker本身自动启动

centos7.6 配置可执行以下命令:

sudo systemctl enable docker

普通模式自启(通过run命令启动的)

参考:https://docs.docker.com/engine/reference/commandline/run/#restart-policies---restart

默认为不自动重启,如需重启需要在run时添加--restart参数,如:

docker run --restart=always redis
也可以在启动后通过update命令更新配置:

docker update --restart=always redis

Docker-Compose方式启动的

参考:https://docs.docker.com/compose/compose-file/#restart

默认为不自动重启,如需重启需要配置

通过配置restart=always段来控制,如以下 docker-compose.yml文件示例:

version: '3'
services:
  mongo:
    container_name: mongo
    restart: always
    image: mongo
    volumes:
      - ./data:/data/db
    ports:
      - "27017:27017"
    networks:
      - appnet
networks:
  appnet:
    drive

如原先已启动,更新docker-compose.yml配置后,使修改生效,可执行:

docker-compose restart

Swarm(docker stack)方式启动的

参考:https://docs.docker.com/compose/compose-file/#restart_policy

默认无需配置,会自动尝试重启服务,可以通过restart_policy配置段的参数来控制行为,如:

version: "3.7"
services:
  redis:
    image: redis:alpine
    deploy:
      restart_policy:
        condition: on-failure
        delay: 5s
        max_attempts: 3
        window: 120s

默认行为如下:

condition: any ( 重启条件:所有可选值 none, on-failure or any )
delay: 0 (重启尝试前的等待时间)
max_attempts: 永不放弃 (重启尝试次数)
window: 立刻(重启执行多久后,判断启动是否成功 default: 立刻).

发表回复

登录... 后才能评论