如何使用 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

猜你喜欢

转载自blog.csdn.net/allway2/article/details/121685621