<docker系列>koishi 安装与docker全程指导(基于Ubuntu server 搭建24小时机器人 适合小白)

前言
本指导基于orange pi 3 lts 开发板的Ubuntu server系统进行实验,目前已成功.

注意非特殊情况不建议使用docker坑特别多,本教程仅适用于koishi v1.5.6镜像版本!!!
注意非特殊情况不建议使用docker坑特别多,经过验证,官方最新镜像问题已修复
思路
1.安装docker
2.安装portainer(方便管理docker)
3.安装koishi v1.5.6 版本(直接安装1.6.0版本镜像我的容器无法通过浏览器连接,原因未知)
3.安装koishi
最新修改,2023.02.10 昨晚已经将问题报告给官方,官方已经修复bug,但目前我未进行实验
最新修改,2023.02.16,官方已修复问题可直接使用最新镜像,对应命令也进行了同步修改,可直接使用
由于限制,本教程缺失图片及连接将放在评论区

1.安装docker
由于是服务器,因此只能安装Docker Engine

1.1 设置存储库

sudo apt update
sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

1.2添加 Docker 的官方 GPG 密钥

sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

1.3使用命令设置存储库:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

1.4 安装Dockerc Engine、containerd 和 Docker Compose。

sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1.5安装apparmor(强制访问控制系统)

apt install apparmor

1.6验证安装

sudo docker run hello-world

若输出如下则成功安装

ps:使用以下命令方便以后docker运行(需要重启才能生效)

sudo usermod -aG docker $USER
reboot

2.安装portainer
2.1 拉取portainer并启动容器

docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer portainer/portainer

命令解释:
-d 后台运行容器,并返回容器ID
-p 指定端口映射,格式为:主机(宿主)端口:容器端口
–restart=always 主机重启后自动运行该容器
-v /var/run/.sock:/var/run/docker.sock:运行Docker的目录映射,必须要有才能用Portainer操作Docker命令
–name 自定义容器名称
portainer/portainer 容器所使用的镜像名称

2.2打开portainer界面

你的服务器ip:9000

首先会让你设置密码,设置后进入就行,界面如下

Q:我看不懂
A:请使用浏览器自带的翻译器
3.安装koishi
3.1 拉取koishi镜像

docker pull koishijs/koishi

3.2启动koishi(紧急更新2023.02.10.22:39 加入容器时区同步!!!)

#首先修改服务器时区以及时间
tzselect
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3.3紧急更新(加入容器数据本地化)
3.3.1创建本地映射文件夹(我这里选择创建在home路径下的koishi文件夹里)

mkdir /home/koishi
#这里去掉-d命令以方便查看报错
docker run -p 5140:5140 -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v /home/koishi:/koishi --restart=always --name koishi koishijs/koishi

3.4进入koishi界面

你的服务器ip:5140

界面如下

4.注意
4.1如果你需要停止koishi容器
<图片位于评论区>
4.2如果你需要再次启动koishi
<图片位于评论区>

如果你想使用命令开启或者关闭容器,请执行以下命令!!!
开启

### docker start 容器名字或者容器id
docker start koishi

关闭

### docker stop 容器名字或者容器id
docker stop koishi

请不要使用创建容器时的命令,那样将会报错(你改了容器名字当我没说,但是你的数据会“消失”)
也不要使用官网的命令[docker run -p 5140:5140 koishijs/koishi],这样你的数据也会“消失”
ps:"数据消失"并不是数据丢失,而是因为你创建了新的容器,你的数据在旧的容器中。

本文引用了一下文章
Docker官方文档
由于限制本教程将会把其他链接放在回复里,以及缺失的操作图片

5 个赞

启动koishi

1 个赞

停止koishi

1 个赞

链接
https://blog.csdn.net/dingdingdandang/article/details/123308274
https://blog.csdn.net/stlinax/article/details/120579415

1 个赞

非常详细的教程,支持

1 个赞

想知道这样搭建之后的koishi的配置文件在什么地方 我找了好久没找到Orz
因为部署在阿里云上 出现了无法扫码登录的情况 所以想把accounts文件转移 但是不知道转到什么地方

1 个赞

/home/koishi

2 个赞

时区同步本来准备PR一下的,但是我发现我不会搞,遂在论坛里回复一下。
创建容器的代码中加入一条环境变量 TZ=Asia/Shanghai ,即可更改容器内时区,执行代码如下:

docker run -p 5140:5140 -e TZ=Asia/Shanghai -v /home/koishi:/koishi --restart=always --name koishi koishijs/koishi

1 个赞

时区同步本来准备PR一下的,但是我发现我不会搞,遂在论坛里回复一下。
创建容器的代码中加入一条环境变量 TZ=Asia/Shanghai ,即可更改容器内时区,执行代码如下:
docker run -p 5140:5140 -e TZ=Asia/Shanghai -v /home/koishi:/koishi --restart=always --name koishi koishijs/koishi


chore: timezone by HuanLinOTO · Pull Request #36 · koishijs/docs (github.com)

2 个赞

时区同步已经合并,感谢 @HuanLinMaster 的贡献!

2 个赞