docker:只在容器运行时执行命令

时间:2016-06-08 20:19:27

标签: docker

我想在docker容器中创建一个挂载卷的备份。 这是我的dockerfile中的命令:

RUN tar -cvpzf test.tar -C /test/ .

但问题是它只能在我的音量装载后才能执行。 (因为我的音量将挂载到/test/

所以这个命令需要在启动docker容器后执行,而不是在我创建图像时执行。我该如何执行此操作?

由于

1 个答案:

答案 0 :(得分:1)

一旦你的容器运行,假设容器有tar,你就可以完全按照自己的意愿行事:

docker exec nameofcontainer [options] tar -cvpzf test.tar -C /test/ .

您可以使用docker ps获取正在运行的容器的名称。对于选项,您可能需要使用-ti以便查看输出。

您还可以使用自定义ENTRYPOINTCMD构建容器,该容器将启动容器的主要作业,并运行备份脚本以及任何其他任务需要表演。

official mysql container使用docker-entrypoint.sh脚本执行此类操作。