my file learn about tech container (docker, podman, kubernetes)

http://ariaf.my.id/container_aria/docker compose/09 - volume.html


volume

  • volume => docker compose juga bisa digunakan untuk membuat volume
    • kita bisa gunakan attribute volume

syntax

volumes:
    mongo-data1:
        name: mongo-data-1
    mongo-data-2:
        name: mongo-data-2

services:
    mongodb-1:
  • menggunakan volume kita bisa gunakan bind mount dengan ketentuan
    • pada short cyntax kita bisa ganti source dengan nama volume
    • dan long syntax menjadi nama volume

syntax

volumes:
    - "mongo-data-1:/data/db"

volumes:
    - type: volume
      source: mongo-data2
      target: "/data/db"
      read_only: false

contoh

version: '3.8'

services:
  mongodb-1:
    container_name: mongodb-1
    image: mongo
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: ariafatah
      MONGO_INITDB_ROOT_PASSWORD: ariafatah
      MONGO_INITDB_DATABASE: admin
    volumes:
      - "mongo-data-1:/data/db"
  mongodb-2:
    container_name: mongodb-2
    image: mongo
    ports:
      - "27018:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: ariafatah
      MONGO_INITDB_ROOT_PASSWORD: ariafatah
      MONGO_INITDB_DATABASE: admin
    volumes:
      - type: volume
        source: mongo-data-2
        target: "/data/db"
        read_only: false

volumes:
  mongo-data-1:
    name: mongo-data-1
  mongo-data-2:
    name: mongo-data-2
  • menghapus volume
    • saat kita menggunakan perintah docker compose down yang hanya dihapus hanyalah container dan network saja
    • volume tidak akan dihapus hal ini agar jangan samapi kita tidak sengaja menghapus volume
    • jika kita ingin menghapus volume kita bisa lakukan manual dengan perintah docker volume rm nama_volume