alpine/sqlitealpine/sqlite 是基于 Alpine Linux 构建的轻量级 SQLite3 容器化镜像,集成了 SQLite3 数据库的命令行工具。SQLite3 是一款嵌入式关系型数据库,以其零配置、无需服务进程、文件型存储等特性广泛应用于轻量级数据存储场景。该镜像旨在提供快速、便捷的 SQLite3 运行环境,适用于开发测试、临时数据处理或轻量级应用的数据持久化需求。
通过 docker run 命令启动容器,指定数据库文件和需执行的 SQL 操作。核心语法如下:
bashdocker run [选项] alpine/sqlite <数据库文件> <SQL命令|SQL脚本>
| 参数 | 说明 |
|---|---|
-ti | 分配交互式终端,支持命令行输入(用于交互式操作) |
--rm | 容器退出后自动删除,避免残留容器文件 |
-v <宿主机路径>:<容器路径> | 挂载宿主机目录到容器内,实现数据库文件持久化(必填,否则数据会丢失) |
-w <容器工作目录> | 设置容器内工作目录,建议与挂载路径一致,便于文件路径管理 |
SQLite3 数据库以单一文件存储,容器内默认无持久化存储,需通过挂载宿主机目录实现数据保留。示例中挂载当前目录到容器 /apps 目录,数据库文件将保存在宿主机当前路径下。
若指定的数据库文件(如 test.db)不存在,容器将自动创建。执行以下命令创建 users 表:
bash# 挂载当前目录到容器 /apps,在 /apps 目录下操作 test.db docker run -ti --rm -v $(pwd):/apps -w /apps alpine/sqlite test.db "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);"
再次执行相同命令,因表已存在,将返回错误提示,确认表创建成功:
bashdocker run -ti --rm -v $(pwd):/apps -w /apps 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
宿主机当前目录下将生成 test.db 文件,验证数据持久化成功:
bashls -l test.db
通过 -ti 参数进入 SQLite3 交互式终端,手动执行多条命令:
bashdocker run -ti --rm -v $(pwd):/apps -w /apps alpine/sqlite test.db
进入终端后,可执行 SQL 命令(以 .exit 退出):
sqlsqlite> INSERT INTO users (name) VALUES ('Alice'); sqlite> SELECT * FROM users; 1|Alice sqlite> .exit
将 SQL 命令写入脚本文件(如 init.sql),通过容器执行:
init.sqlsqlCREATE 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);
bashdocker run -ti --rm -v $(pwd):/apps -w /apps alpine/sqlite test.db < init.sql
通过交互式终端查询:
bashdocker run -ti --rm -v $(pwd):/apps -w /apps alpine/sqlite test.db sqlite> SELECT * FROM products; 1|Laptop|4999.99 2|Phone|2999.99 sqlite> .exit
创建 docker-compose.yml 实现更便捷的启动配置:
yamlversion: '3' services: sqlite: image: alpine/sqlite volumes: - ./data:/apps # 宿主机 ./data 目录挂载到容器 /apps,持久化数据库文件 working_dir: /apps command: test.db # 启动后进入交互式终端(若需执行命令,替换为 "test.db 'SQL命令'") tty: true # 分配终端 stdin_open: true # 保持标准输入打开
启动容器:
bashdocker-compose up
进入交互式终端后即可执行 SQL 操作,数据保存在宿主机 ./data/test.db。
-v 参数挂载宿主机目录,否则容器退出后数据库文件将丢失。chmod 777 ./data,生产环境按需调整)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务