sql >> Databáze >  >> RDS >> PostgreSQL

Trvalá databáze využívající svazky dockeru

Podle Dokumentu Docker Compose , když napíšete něco jako:

volumes:
  - /var/lib/postgresql/data

Vytvoří nový svazek dockeru a namapuje jej na /var/lib/postgresql/data uvnitř kontejneru. Proto pokaždé, když spustíte docker-compose up a docker-compose down , vytvoří nový svazek. Chování můžete potvrdit pomocí docker volume ls .

Chcete-li se tomu vyhnout, máte dvě možnosti:

(A) Mapování hostitelského adresáře do kontejneru

Adresář hostitele můžete namapovat na kontejner pomocí <HOST_PATH>:<CONTAINER_PATH> .

volumes:
  - /path/to/your/host/directory:/var/lib/postgresql/data

Data postgresql budou uložena do /path/to/your/host/directory hostitele kontejneru.

(B) Použijte externí kontejner

docker-compose má možnost externího kontejneru .Když je nastavena na hodnotu true, nevytvoří vždy objem. Zde je příklad.

version: '2'
services:
  dbdata:
    image: postgres:9.5.2
    volumes:
      - mypostgresdb:/var/lib/postgresql/data
volumes:
  mypostgresdb:
    external: true

S external: true , docker-compose nevytvoří mypostgredb objem, takže si jej musíte vytvořit sami pomocí následujícího příkazu:

docker volume create --name=mypostgredb

Data postgresql budou uložena do svazku docker s názvem mypostgredb . Přečtěte si reference pro více podrobností.




  1. Migrace Laravel 4:instalace ErrorException

  2. Vrácení seznamu tabulek z propojeného serveru v SQL Server (příklady T-SQL)

  3. Jak mohu zapsat hodnoty SQLite Real do hodnot Java BigDecimal?

  4. Drahé úplné skenování tabulky při výběru všech bez podmínky