mirror of
https://github.com/SeanChang/xuanyuan_docker_proxy.git
synced 2026-10-07 16:28:35 +08:00
6.7 KiB
6.7 KiB
image, description, source, canonical, exported_at
| image | description | source | canonical | exported_at |
|---|---|---|---|---|
| alpine/sqlite | 基于Alpine Linux的SQLite3 Docker镜像,用于通过容器快速执行SQLite3命令,支持自动创建数据库文件及进行数据库表创建等操作。 | https://xuanyuan.cloud/zh/r/alpine/sqlite | https://xuanyuan.cloud/zh/r/alpine/sqlite | 2026-07-12T16:36:12.930Z |
轩辕镜像中文简介(在线版): alpine/sqlite 中文简介
含镜像标签、拉取命令、部署文档与相关推荐。
alpine/sqlite 镜像文档
一、镜像概述和主要用途
alpine/sqlite 是基于 Alpine Linux 构建的轻量级 SQLite3 容器化镜像,集成了 SQLite3 数据库的命令行工具。SQLite3 是一款嵌入式关系型数据库,以其零配置、无需服务进程、文件型存储等特性广泛应用于轻量级数据存储场景。该镜像旨在提供快速、便捷的 SQLite3 运行环境,适用于开发测试、临时数据处理或轻量级应用的数据持久化需求。
二、核心功能与特性
核心功能
- 集成完整的 SQLite3 命令行工具,支持标准 SQL 语法及 SQLite3 扩展功能
- 支持数据库文件的创建、查询、插入、更新、删除等操作
- 支持通过命令行直接执行 SQL 语句或脚本文件
特性
- 轻量级:基于 Alpine Linux,镜像体积极小(通常仅数 MB),资源占用低
- 零配置:无需预配置服务,直接运行即可使用
- 自动创建数据库:若指定的数据库文件不存在,将自动创建
- 数据持久化:通过 Docker 卷挂载可实现数据库文件的持久化存储
- 快速启动:容器启动速度快,适合临时任务或频繁启停场景
三、使用场景和适用范围
适用场景
- 开发测试:在开发环境中快速验证 SQL 语句或数据库逻辑
- 临时数据存储:需短期保存数据且无需复杂管理的场景(如日志、缓存)
- 轻量级应用:资源受限环境下的小型应用数据持久化(如嵌入式设备、边缘计算)
- 教学演示:演示 SQLite3 基本用法或 SQL 语法教学
四、使用方法和配置说明
基本使用方式
通过 docker run 命令启动容器,指定数据库文件和需执行的 SQL 操作。核心语法如下:
docker run [选项] alpine/sqlite <数据库文件> <SQL命令|SQL脚本>
关键参数说明
| 参数 | 说明 |
|---|---|
-ti |
分配交互式终端,支持命令行输入(用于交互式操作) |
--rm |
容器退出后自动删除,避免残留容器文件 |
-v <宿主机路径>:<容器路径> |
挂载宿主机目录到容器内,实现数据库文件持久化(必填,否则数据会丢失) |
-w <容器工作目录> |
设置容器内工作目录,建议与挂载路径一致,便于文件路径管理 |
数据持久化
SQLite3 数据库以单一文件存储,容器内默认无持久化存储,需通过挂载宿主机目录实现数据保留。示例中挂载当前目录到容器 /apps 目录,数据库文件将保存在宿主机当前路径下。
五、Docker 部署示例
1. 基本操作示例(创建表并验证)
步骤1:创建数据库和表
若指定的数据库文件(如 test.db)不存在,容器将自动创建。执行以下命令创建 users 表:
# 挂载当前目录到容器 /apps,在 /apps 目录下操作 test.db
docker run -ti --rm -v $(pwd):/apps -w /apps docker.xuanyuan.run/alpine/sqlite test.db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);"
步骤2:验证表已创建
再次执行相同命令,因表已存在,将返回错误提示,确认表创建成功:
docker run -ti --rm -v $(pwd):/apps -w /apps docker.xuanyuan.run/alpine/sqlite test.db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);"
输出:
Error: in prepare, table users already exists
CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);
^--- error here
步骤3:查看宿主机数据库文件
宿主机当前目录下将生成 test.db 文件,验证数据持久化成功:
ls -l test.db
2. 交互式操作示例
通过 -ti 参数进入 SQLite3 交互式终端,手动执行多条命令:
docker run -ti --rm -v $(pwd):/apps -w /apps docker.xuanyuan.run/alpine/sqlite test.db
进入终端后,可执行 SQL 命令(以 .exit 退出):
sqlite> INSERT INTO users (name) VALUES ('Alice');
sqlite> SELECT * FROM users;
1|Alice
sqlite> .exit
3. 执行 SQL 脚本文件
将 SQL 命令写入脚本文件(如 init.sql),通过容器执行:
步骤1:创建脚本文件 init.sql
CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price REAL);
INSERT INTO products (name, price) VALUES ('Laptop', 4999.99);
INSERT INTO products (name, price) VALUES ('Phone', 2999.99);
步骤2:执行脚本
docker run -ti --rm -v $(pwd):/apps -w /apps docker.xuanyuan.run/alpine/sqlite test.db < init.sql
步骤3:验证数据
通过交互式终端查询:
docker run -ti --rm -v $(pwd):/apps -w /apps docker.xuanyuan.run/alpine/sqlite test.db
sqlite> SELECT * FROM products;
1|Laptop|4999.99
2|Phone|2999.99
sqlite> .exit
4. docker-compose 配置示例
创建 docker-compose.yml 实现更便捷的启动配置:
version: '3'
services:
sqlite:
image: docker.xuanyuan.run/alpine/sqlite
volumes:
- ./data:/apps # 宿主机 ./data 目录挂载到容器 /apps,持久化数据库文件
working_dir: /apps
command: test.db # 启动后进入交互式终端(若需执行命令,替换为 "test.db 'SQL命令'")
tty: true # 分配终端
stdin_open: true # 保持标准输入打开
启动容器:
docker-compose up
进入交互式终端后即可执行 SQL 操作,数据保存在宿主机 ./data/test.db。
六、注意事项
- 数据持久化:必须通过
-v参数挂载宿主机目录,否则容器退出后数据库文件将丢失。 - 权限问题:若宿主机挂载目录权限不足,可能导致容器无法读写文件,建议确保宿主机目录有读写权限(如
chmod 777 ./data,生产环境按需调整)。 - SQLite 限制:SQLite 不适合高并发写操作,请勿用于生产环境的高性能数据存储场景。