docker-compose 关机或者重启docker同时重启容器restart always的配置

众所周知,存粹使用docker启动的话需要加–restart=always即可实现这个功能,而使用docker-compose的话在相关服务配置下加 restart: always 就行

version: '2'
services:
  database:
    build: ./mysql/
    command: mysqld --user=root --verbose
    restart: always 
    environment:
      MYSQL_DATABASE: "web_level3_sqli"
      MYSQL_USER: "web_level3_sqli"
      MYSQL_PASSWORD: "thisisasecurepassword123"
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
  web:
    build: ./www/
    restart: always
    ports:
     - "12000:80"
    volumes:
      - ./www/src:/var/www/html
    links:
      - database
Docker Compose 是一个工具,用于定义和运行一组 Docker 镜像作为应用服务。如果你想要定期重启容器以保持其可用性和执行某些任务,通常不会直接通过 `docker-compose` 的命令行来配置定时重启。但是,你可以结合一些外部手段来实现这一需求。 一种常见的做法是在 Dockerfile 或者启动脚本(例如 entrypoint 或 command)中设置定时任务。例如,可以使用 Linux 的 `cron` 服务来调度容器重启,或者借助其他的进程管理工具如 systemd、Supervisor 等。 具体步骤如下: 1. **使用`cron`**: - 在 Dockerfile 中添加一个 shell 脚本来执行你需要的任务,然后指定这个脚本在一个特定的时间间隔运行。 ```bash RUN echo "0 * * * * /your/script.sh" > /etc/crontab ``` 2. **使用`systemd`**: - 创建一个 service 单元文件(比如 `/etc/systemd/system/restart-container.timer`),定义时间触发的重启操作。 ```ini [Unit] Description=Restart my container every hour OnCalendar=*:00/1 * * * [Timer] Persistent=true Interval=60min RandomizedDelaySec=30s [Install] WantedBy=default.target ``` 然后启动并启用该定时器。 3. **使用`supervisor`**: - 如果你正在使用 supervisor 进程管理器,可以在 supervisor 的 configuration 文件 (`supervisord.conf`) 中添加一个包含重启指令的服务。 记得每次更新镜像或者容器配置后,都要通过 `docker-compose up -d --force-recreate` 来确保新的配置生效,并重启容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值