如何使用 Docker 创建、备份和还原 SQLite 数据库

开始之前

在本教程中,我们将学习如何使用Docker创建、备份还原 SQLite数据库。Linux 机器和 Docker 将需要学习本教程。

创建 Docker SQLite Docker 映像

Dockerfile:

FROM alpine:3.10
RUN apk add --update sqlite
RUN mkdir /db
WORKDIR /db

ENTRYPOINT ["sqlite3"]
CMD ["test.db"]

使用以前的 Dockerfile 构建映像的命令。注意:请确保您位于同一文件夹中,或将以下内容更改为当前 Dockerfile 文件夹):.

docker build -t some-sqlite .

最后检查 Docker SQLite 映像是否已创建:

$ docker images | grep sqlite
some-sqlite                          latest               9ac54b81805c        23 seconds ago 

使用 Docker 创建 SQLite 数据库

现在是时候运行上一个映像来创建和使用名为 test.db 的数据库了:

docker run --rm -it -v `pwd`:/db some-sqlite test.db

容器启动后,将执行其入口点,然后可以运行以下命令来创建表、插入值并选择它们:sqlite3

sqlite> create table test_table(id int,description varchar(10));
sqlite> .tables
test_table
sqlite> insert into test_table values(1,'foo');
sqlite> insert into test_table values(2,'bar');
sqlite> select * from test_table;
1|foo
2|bar
sqlite> .exit

您可以在此处找到更多 SQLite 命令 。

使用 Docker 备份 SQLite 数据库

用于将测试备份到主机上的转储.sql文件.db命令:

docker run --rm -it -v `pwd`:/db some-sqlite test.db .dump >> dump.sql

最后,仔细检查转储.sql包含所有 SQLite 查询:

$ cat dump.sql
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE test_table(id int,description varchar(10));
INSERT INTO test_table VALUES(1,'foo');
INSERT INTO test_table VALUES(2,'bar');
COMMIT;

使用 Docker 还原 SQLite 数据库

在还原数据库之前,请确保目标数据库为空(将当前数据库移动到 .old):

mv test.db test.db.old

用于还原测试.db数据库的命令:

cat dump.sql | docker run --rm -i -v `pwd`:/db some-sqlite test.db

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...