dksnap - Docker Snapshots for Dev & Test Data

栏目: IT技术 · 发布时间: 5年前

内容简介:When testing locally we often use containers withFor a full description check out this

dksnap

dksnap creates, views, and runs snapshots of Docker containers.

When testing locally we often use containers with test data . dksnap allows you to snapshot those containers at a good state, and roll back or forward as needed.

For a full description check out this blogpost .

dksnap - Docker Snapshots for Dev & Test Data

Install

Install on MacOS or Linux:

curl https://kelda.io/install-dksnap.sh | sh

Or download the latest release and copy to your path.

Demo

Watch the demo , or try it yourself with step-by-step instructions :

# Download the demo.
git clone https://github.com/kelda/dksnap.git
cd dksnap/demo

# Start the example application. You can access it in your browser at localhost:8080.
docker-compose up -d

# Use dksnap to create snapshots of the entries in the Mongo database.
dksnap

Key Features

Create Snapshots

dksnap - Docker Snapshots for Dev & Test Data

Create a snapshot of any running Docker container. dksnap works with any container, but has extra features for select databases.

  • Snapshots are volume aware. They will capture data in volumes as well as in the container image.
  • Snapshots are database aware. When snapshotting databases that implement the plugin interface , dksnap will politely ask the database process to dump its contents before creating a Docker image.

View Snapshots

dksnap - Docker Snapshots for Dev & Test Data

dksnap includes a terminal browser that provides a tree view of all your snapshots along with diffs showing how they've changed over time.

Replace Running Containers

dksnap - Docker Snapshots for Dev & Test Data

Replace a running Docker container with a snapshot taken in the past. dksnap will automatically shut down the running container, boot the snapshot image, and restart the container using the same Docker command arguments.

Other Features

Works With Any Container

By default, dksnap creates snapshots by committing the container's filesystem with docker commit , and dumping the contents of all attached volumes.

Database Awareness

dksnap is database aware, meaning it knows how to politely dump and restore and diff database contents for the following databases:

  • Mongo
  • Postgres
  • MySQL

It has a plugin architecture making it easy to add more databases in the future. Contributions welcome!

Docker Images

dksnap images are simply docker images with some additional metadata. This means they can be viewed and manipulated using the standard docker command line tools.

Share Snapshots

dksnap stores all of the snapshot information in a docker image, so you can share your snapshot by pushing it to a Docker registry just like you would any other container image.

Volume Awareness

Snapshots are volume aware. The official database images all store their data in volumes which docker commit does not capture. dksnap saves volumes in addition to the container filesystem.

FAQ

How is this different than docker commit ?

dksnap uses docker commit for its generic snapshot approach to capture the container’s filesystem. However, docker commit has distinct limitations:

  • It doesn't capture volumes, so it can't be used with most database docker images.
  • It isn't database aware. It doesn't politely save/restore database state meaning it's prone to creating corrupted database images.

How is this different than a Docker image?

dksnap uses Docker images as the storage format for its snapshots, which makes them fully compatible with all of the things you would normally do with an image (run, push, delete, etc). You could handcraft Docker images to mimic dksnap snapshots, but dksnap makes it easy to create them from running containers.

Roadmap

  • Automated snapshot creation from production and staging databases in CI.
  • A non-graphical CLI interface that's scriptable.
  • Native support for additional databases.
  • Snapshot of CPU and RAM state.

Contributing

dksnap is still in alpha and under heavy development. Contributions are very much welcome so please get involved. Check out the contribution guidelines to get started.

Build

dksnap requires being built with go version 1.13 or later.

It uses Go Modules, and error wrapping .

git clone https://github.com/kelda/dksnap
cd dksnap
GO111MODULE=on go build .
./dksnap

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript DOM编程艺术

JavaScript DOM编程艺术

Jeremy Keith / 杨涛、王建桥、杨晓云 / 人民邮电出版社 / 2006年12月 / 39.00元

本书讲述了JavaScript和DOM的基础知识,但重点放在DOM编程技术背后的思路和原则:预留退路、循序渐进和以用户为中心等,这些概念对于任何前端Web开发工作都非常重要。本书将这些概念贯穿在书中的所有代码示例中,使你看到用来创建图片库页面的脚本、用来创建动画效果的脚本和用来丰富页面元素呈现效果的脚本,最后结合所讲述的内容创建了一个实际的网站。 本书适合Web设计师和开发人员阅读。一起来看看 《JavaScript DOM编程艺术》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具