如何从新build的图像获得docker卷?
我正在用Jenkins构build一个带有SQLLight数据库的Docker镜像,我相信我想从Dockerfile构build数据库并将其存储到一个卷中,以便可以单独导出卷。 我开始构build: 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构build中批量运行这个。
我感觉到我正在做这个错误的方式。 但是,正确的方法是什么?
您需要运行基于FOO
映像的容器:
docker run -d --name BAR FOO
然后你可以访问这些卷:
docker run --rm --volumes-from BAR ...
运行你想要备份的容器,并直接在该容器中进行备份(如果使用--entrypoint /bin/sh
修改了入口点就像--entrypoint /bin/sh
):
docker run --rm -v $(pwd):/backup FOO tar cvf /backup/backup.tar /opt/webapp
或者,如果您必须在不同的容器中运行备份(例如,不包括备份实用程序),则只需创buildFOO容器,而不运行它:
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
- 我如何使用另一个目录保存构build的Docker容器?
- 是否有可能在Docker容器中获取主机的环境variables?
- 有一个额外的docker容器的build设任务是一个很好的做法吗?
- 如何使用docker-compose运行Express和Mongo
- 使用Gunicorn在Docker中自动重新加载Django开发中的代码更改
- 如何testing与Docker一起使用的代码?
- docker不同的开发环境
- 如何在不同的主机上从外部访问docker container(overlay)中运行的服务
- eclipse pdtdebugging器configuration与docker容器为apache2,php7和xdebug托pipe在Ubuntu 16.04