每24小时将Docker容器重置为其初始状态

时间:2019-09-08 03:20:43

标签: docker docker-compose

我需要每24小时将一个信号处理泊坞窗重置为其初始状态。该泊坞窗将是一个运行中的演示站点,用户可以在其中登录并进行各种设置更改,并且该站点每天都需要重置自己。码头工人是否提供任何此类功能?

我搜索了docker reset命令,但似乎还没有。

这样的删除和重新启动Docker容器工作的过程是否会出现?

docker rm -f $(docker ps -a -q)
docker volume rm $(docker volume ls -q)
docker-compose up -d

我当然应该能够以编程方式执行此操作,最好使用shell脚本。

1 个答案:

答案 0 :(得分:0)

是的,您不需要重置就可以了,只需重新创建容器就足够了,但是如果将卷与主机绑定,那么如果在docker-compose up中从主机的持久性存储中选取了任何东西,它将无法正常工作。

编写一个bash脚本,该脚本将在每1:00 AM或您要创建新容器的任何时间运行。

0 0 * * * create_container.sh

create_container.sh

#!/bin/bash
docker-compose rm -f
docker-compose up -d

或者您也可以使用自己的脚本,但是如果有绑定卷,请在创建容器之前清除该文件。

rm -rf /path/to_host_shared_volume
docker rm -f $(docker ps -a -q)
.
.
.

由于-v的行为不同,它将创建directory(如果不存在)。

或者,如果您想删除所有内容,则可以使用system-prune

#!/bin/bash
docker system prune -f -a --volumes
docker-compose up -d

删除所有未使用的容器,网络,图像(悬空的和未引用的)和卷。

警告!这将删除:

        - all stopped containers
        - all networks not used by at least one container
        - all volumes not used by at least one container
        - all images without at least one container associated to them
        - all build cache