当前位置: 首页 > 知识库问答 >
问题:

如果docker重新启动,为什么我会丢失数据?

斜昊空
2023-03-14

docker合成文件:

version: "2"

networks:
  gitea:
    external: false

volumes:
  gitea:
    driver: local

services:
  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      #- ./gitea:/data
       - gitea:/data
    ports:
       - "3000:3000"
       - "222:22"
    depends_on:
      - db

  db:
    image: mysql:5.7
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

共有1个答案

商正浩
2023-03-14

您应该将一个本地文件夹声明为卷,以便获取持久数据。例如在这里:

docker run -v /host/directory:/container/directory -other -options image_name command_to_run

否则,在删除容器时,默认情况下将丢弃写入现有映像层顶部的任何数据。
这使用的是union文件系统:(请参阅“挖掘Docker层”)

在gitea(docker)的情况下,确保有一个本地数据和mysql文件夹,由docker映像挂载。

volumes:
 - ./data:/data
volumes:
 - ./mysql:/var/lib/mysql

您使用了

volumes:
      #- ./gitea:/data
       - gitea:/data

这将声明一个名为“Gitea”的卷(而不是绑定挂载),存储到Docker安装中。

您可以对db部分进行同样的尝试:

volumes:
 - mysql:/var/lib/mysql
 类似资料:
  • 我编写了一个非常简单的Flink流媒体作业,它使用从Kafka获取数据。 这工作得很好,每当我在Kafka上将某些内容放入主题时,它都会被我的Flink作业接收并处理。现在我试图看看如果我的Flink作业由于某种原因不在线会发生什么。所以我关闭了flink作业并继续向Kafka发送消息。然后我再次开始我的Flink作业,并期望它会处理同时发送的消息。 然而,我得到了以下信息: 因此,它基本上忽略了

  • 我在单节点中运行kafka,我想看到kafka生产者行为,当我关闭我的kafka代理,然后我在几秒钟内重新启动我的代理,所以我创建Spring启动程序,我可能会发送1000个客户JSON对象并打印每次发送的JSON对象的偏移量。我的应用程序工作正常,但是当我关闭我的kafka代理并在几秒钟后我重新启动我的代理时,我的生产者返回以正常发送来自最新偏移量的对象。对于我的例子,当偏移量= 983在控制台

  • 我有一个docker桌面安装在我的windows pc上。在这个平台上,我在一个docker容器上自托管gitlab。今天,我尝试通过键入以下命令来备份我的gitlab: 运行此命令后,备份成功,并看到一条消息,表示备份已完成。然后我重新启动了docker桌面,等待容器启动。当容器启动时,我访问了gitlab接口,但看到了一个新的gitlab实例。 然后键入以下命令以恢复备份:

  • 我有五门课: 、、、、。 是文本的持有者。 是空的抽象类。 扩展并存储一个String和一个ArrayList的。 是抽象类并存储

  • 使用Flume源syslogudp,我看到大约25%的数据丢失。 这是我的配置 a1.sources = r1 a1.sinks=k1 a1 .通道= c1 a1.sources.r1.type = syslogudp a1.sources.r1.bind = 172.24.1.78 a1.sources.r1.port = 65535 a1.sinks.k1.type=文件滚动 水槽。水槽。目录

  • 使用window.open打开同源新tab,新页面localstorage中token丢失。