使用 Docker 部署
信息
在继续操作之前,我们推荐您先阅读《写在前面》,这可以快速帮助你了解 Ikaros。
提示
此文档仅提供使用默认 H2 数据库的 Docker 运行方式,主要用于体验和测试,在生产环境我们不推荐使用 H2 数据库。
如果需要使用其他数据库部署,我们推荐使用 Docker Compose 部署:使用 Docker Compose 部署
环境搭建
- Docker 安装文档:https://docs.docker.com/engine/install/
提示
我们推荐按照 Docker 官方文档安装 Docker,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。
使用 Docker 镜像
可用的 Ikaros 的 Docker 镜像:
注意
目前 Ikaros 并未更新 Docker 的 latest 标签镜像,主要因为 暂未发布正式版本。我们推荐使用固定版本的标签,比如 ikarosrun/ikaros:v0.8.0
。
ikarosrun/ikaros:v0.8.0
:表示最新的可用镜像,每次发布时都会根据GitHub的标签构建一个新的镜像ikarosrun/ikaros:dev
:表示开发中的镜像,不推荐使用,每次Pull Request合并到主分支都会构建并覆盖该镜像。。
后续文档以 ikarosrun/ikaros:v0.8.0
为例。
创建容器
docker run \
-it -d \
--name ikaros \
-p 9999:9999 \
-v ~/.ikaros:/root/.ikaros \
ikarosrun/ikaros:v0.8.0 \
--ikaros.security.initializer.master-username=tomoki \
--ikaros.security.initializer.master-password=tomoki信息注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:使用 Docker Compose 部署
- -it:开启输入功能并连接伪终端
- -d:后台运行容器
- --name:为容器指定一个名称
- -p:端口映射,格式为
主机(宿主)端口:容器端口
。 - -v:工作目录映射。形式为:
-v 宿主机路径:/root/.ikaros
,后者不能修改。
变量详解:
参数名 描述 spring.r2dbc.url
数据库连接地址,详细可查阅下方的 数据库配置
spring.r2dbc.username
数据库用户名 spring.r2dbc.password
数据库密码 spring.sql.init.platform
数据库平台名称,支持 postgresql
、h2
ikaros.security.initializer.master-username
初始超级管理员用户名, 默认 tomoki
ikaros.security.initializer.master-password
初始超级管理员密码, 第一次运行程序打印在控日志里 数据库配置:
链接方式 链接地址格式 spring.sql.init.platform
PostgreSQL r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}
postgresql H2 Database r2dbc:h2:file:///${ikaros.work-dir}/db/ikaros?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE
h2 用浏览器访问
/console
即可进入 Ikaros 管理页面,用户名和密码为启动参数中的master-username
和master-password
。提示如没有用这两个参数启动,则默认的用户名是
tomoki
,密码在打印在日志里(只有首次运行会打印密码)。
升级版本
拉取新版本镜像(请选择最新的标签替换下方的
v0.8.0
)docker pull ikarosrun/ikaros:v0.8.0
停止运行中的容器
docker stop ikaros
docker rm ikaros备份数据(重要)
cp -r ~/.ikaros ~/ikaros.archive
需要注意的是,
ikaros.archive
文件名不一定要根据此文档命名,这里仅仅是个示例。更新 Ikaros
修改版本号后,按照最初安装的方式,重新创建容器即可。
docker run \
-it -d \
--name ikaros \
-p 9999:9999 \
-v ~/.ikaros:/root/.ikaros \
ikarosrun/ikaros:v0.8.0 \
--ikaros.security.initializer.master-username=tomoki \
--ikaros.security.initializer.master-password=tomoki