我需要每24小时将一个信号处理泊坞窗重置为其初始状态。该泊坞窗将是一个运行中的演示站点,用户可以在其中登录并进行各种设置更改,并且该站点每天都需要重置自己。码头工人是否提供任何此类功能?
我搜索了docker reset命令,但似乎还没有。
这样的删除和重新启动Docker容器工作的过程是否会出现?
docker rm -f $(docker ps -a -q)
docker volume rm $(docker volume ls -q)
docker-compose up -d
我当然应该能够以编程方式执行此操作,最好使用shell脚本。
答案 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