如何从新建的图像中获取docker卷?

时间:2016-08-18 11:43:30

标签: docker

我正在使用Jenkins使用SQLLight数据库构建一个docker镜像,我相信我想从Dockerfile构建数据库并将其存储到卷中,以便我可以单独导出卷。我将构建开始为:docker build -t FOO .但是当我要将卷数据提取为:

docker run --rm --volumes-from FOO -v $(pwd):/backup busybox tar cvf /backup/backup.tar /opt/webapp`

我收到错误:No such container: FOO

这当然有道理,因为FOO不是一个容器,它是一个图像。但是如何获得容器标识符?我不能只读取任何Docker输出,因为我在Jenkins构建中批处理它。

我觉得我这样做是错误的。但是正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

您需要根据FOO图片运行容器:

docker run -d --name BAR FOO

然后您可以访问卷:

docker run --rm --volumes-from BAR ...

答案 1 :(得分:1)

运行要备份的容器并直接在该容器中执行备份(如果使用--entrypoint /bin/sh修改了/ bin / sh,请将其更改为/ bin / sh):

docker run --rm -v $(pwd):/backup FOO tar cvf /backup/backup.tar /opt/webapp

或者,如果您必须在其他容器中运行备份(例如,不包括备份实用程序),则只需创建FOO容器,而不是运行它:

docker create --name foo-vol FOO
docker run --rm --volumes-from foo-vol -v $(pwd):/backup \
   busybox tar cvf /backup/backup.tar /opt/webapp
docker rm -v foo-vol