Chuyển đến nội dung chính

restore data trong docker khi bị mất

 Trường hợp khi cấu hình docker compose bị sai , sau khi build thì sẽ mất data được lưu trong DB

các step restore lại data

Step1 : Kiểm tra volume đã lưu trữ dữ liệu

Nếu bạn đã mất dữ liệu sau khi build lại, trước tiên hãy kiểm tra xem Docker có tạo volume ngẫu nhiên hay không bằng lệnh:

docker volume ls

Step2 : chạy lệnh với volume nghi ngờ chứa data

docker run --rm -v 46bb9c0768de8da95ec6bc8d5520ccb047cea0ea1a677819f1c08ac3d964631c:/data/db busybox ls /data/db

------------------
ubuntu@instance-20220808-2100:~$ docker run --rm -v 46bb9c0768de8da95ec6bc8d5520ccb047cea0ea1a677819f1c08ac3d964631c:/data/db busybox ls /data/db WiredTiger WiredTiger.lock WiredTiger.turtle WiredTiger.wt WiredTigerHS.wt _mdb_catalog.wt collection-0-1803499696583512383.wt collection-0-5664571540793218750.wt


Nếu bạn tìm thấy volume liên quan đến MongoDB, bạn có thể chạy container mới tạm thời với volume đó để truy xuất dữ liệu.
Nếu thấy các file dữ liệu MongoDB (như collection-0-xxxx.wtindex-0-xxxx.wtmongod.lock), 
đó là volume chứa dữ liệu MongoDB.
---------------------


step 3: chạy docker để mapping với volume đã tìm được

----------------
version: '3.2'
services:
  mongo:
    image: mongo
    restart: unless-stopped
    environment:
      MONGO_INITDB_ROOT_USERNAME: user
      MONGO_INITDB_ROOT_PASSWORD: passs
    ports:
      - "27018:27018"
    volumes:
      - mongo_data:/data/db  # Sử dụng tên volume thay vì ID trực tiếp
networks:
  default:
    driver: bridge
volumes:
  mongo_data:
    external: true
    name: 46bb9c0768de8da95ec6bc8d5520ccb047cea0ea1a677819f1c08ac3d964631c
-----------------------

check DB đã có data chưa .

Notes :
Bakcup data

Nếu bạn muốn sao lưu dữ liệu trước khi khởi động lại container MongoDB, bạn có thể tạo bản sao lưu với mongodump bằng cách chạy container MongoDB tạm thời và sử dụng lệnh này:
docker exec <container_id_or_name> mongodump --out /data/backup

Sao chép dữ liệu từ container ra máy chủ host
docker cp e53eafd93d32:/data/backup /home/ubuntu/mongo_backup

Kiểm tra dữ liệu sao lưu trên máy chủ
ls /home/ubuntu/mongo_backup


Nhận xét