在MongoDB docker-compose.yml中保存数据的正确方法

我一直在阅读一些博客文章和答案,以找到一种即使在删除并重新构建后仍将数据保留在MongoDB容器中的方法。

下面是我的工作方式,但是即使这样做,我仍然担心丢失所有数据,因此我无法进行实际测试。这是正确的方法吗?即使我再次执行类似docker system prunedocker-compose build的操作后,这还会保留我的数据吗?

# Docker Compose
version: '3.7'

services:
  frontend:
    container_name: frontend
    build:
      context: frontend
      dockerfile: Dockerfile
    ports:
      - "80:80"
  backend:
    build: ./backend
    ports:
      - "5000:5000"
    links:
      - db
  db:
    image: mongo:latest
    ports:
      - "27017:27017"
    volumes:
      - data-volume:/data/db <------- added this part

先谢谢了。

veralan329 回答:在MongoDB docker-compose.yml中保存数据的正确方法

您所做的将在容器重启和修剪之间保留数据。 仅当您明确删除所有卷或修剪卷时,该卷才会被删除。

version: '3.7'

services:
  frontend:
    container_name: frontend
    build:
      context: frontend
      dockerfile: Dockerfile
    ports:
      - "80:80"
  backend:
    build: ./backend
    ports:
      - "5000:5000"
    links:
      - db
  db:
    image: mongo:latest
    ports:
      - "27017:27017"
    volumes:
      - data-volume:/data/db

volumes:
    data-volume:
      name: db-data

请确保明确指定卷名,否则您将在实验期间发现自己创建了多个匿名卷。

本文链接:https://www.f2er.com/3048451.html

大家都在问