我用docker安装之后,然后重启容器之后数据全部丢失

我用docker安装之后,然后重启容器之后数据全部丢失,能不能不让丢失。确定是用 docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb 启动的。怎样才能数据不丢失,总不能每次关机重启都来一遍建立知识库和建立应用的操作吧。

相同问题重启后数据全部会被清空

已解决,我的是Windows 系统,需要把docker 容器挂载到硬盘的某个位置就可以了。
步骤:
1、删除现有容器
2、重新执行docker run -d --name=maxkb -p 8080:8080 -v F:/MaxKB:/var/lib/postgresql/data 1panel/maxkb 就可以了。我把它挂在了F:/MaxKB的目录里了,你可以改下自己的目录。如果不成功,先建好目录

但是我的访问不了MaxKB,容器logs提示127.0.0.1:5432 - no response,不知道是什么问题

我也是,一直是这样,你后来解决了嘛?

同问有无解决的高手

启动的时候添加 --privileged=true
比如将数据挂载到D盘
docker run -d --name=maxkb -p 8080:8080 -v D:/maxkb/data:/var/lib/postgresql/data --privileged=true 1panel/maxkb
如果启动还是报错,那就需要使用wsl子系统

Windows PowerShell命令行窗口在Windows系统开始那里

    1. 先安装WSL(管理员运行Windows PowerShell:wsl --update)
    1. 安装Ubuntu(管理员运行Windows PowerShell:wsl --install -d Ubuntu),运行后要设置帐号密码,注:输入密码时,密码不会显示在命令行窗口,不要惊慌,实际已设置好了。
    1. 官网下载安装Docker后注册帐号(需科学上网),在Docker软件设置里,找到“Resource”项→"WSL integration"项,将“Enable integration with my default wSL distro”打勾,将“Ubuntu”打开。后连接Docker(管理员运行Windows PowerShell:docker login)
    1. Docker是国外的软件,日常使用需加速,不加速就得科学上网(但这样不切实际),所以在Docker设置里,找到“Docker Engine”,设置Docker镜像加速代码:
      注意:一个逗号都不能少,直接复制这个就可以了。
      {
      “builder”: {
      “gc”: {
      “defaultKeepStorage”: “20GB”,
      “enabled”: true
      }
      },
      “experimental”: false,
      “registry-mirrors”: [
      https://dockerproxy.com ”,
      https://docker.mirrors.ustc.edu.cn ”,
      https://docker.nju.edu.cn
      ]
    1. 安装MaxKB镜像(点击Ubuntu图标后出现命令行窗口,后输入命令行:docker run -d --name=maxkb -p 8080:8080 -v /maxkb:/var/lib/postgresql/data --privileged=true 1panel/maxkb
1 个赞

将路径加上引号呢

Linux,比如centos主机重启,怎么处理

在docker run的时候 我们用到了指令```
-v ~/.maxkb:/var/lib/postgresql/data

就是做数据持久化
容器启动后检查~/.maxkb目录是否有文件 如果有就说明持久化成功