PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

docker postgres dengan data awal tidak bertahan selama komit

Masalahnya adalah postgres Dockerfile mendeklarasikan "/var/lib/postgresql/data" sebagai volume. Ini adalah direktori biasa yang hidup di luar Sistem File Union yang digunakan oleh gambar. Volume akan aktif sampai tidak ada penampung yang tertaut ke sana dan secara eksplisit dihapus.

Anda memiliki beberapa pilihan:

  • Gunakan --volumes-from perintah untuk berbagi data dengan wadah baru. Ini hanya akan berfungsi jika hanya ada satu gambar postgres yang berjalan pada satu waktu, tetapi ini adalah solusi terbaik.
  • Tulis file Docker Anda sendiri yang membuat data sebelum mendeklarasikan volume. Data ini kemudian akan disalin ke volume saat wadah dibuat.
  • Tulis entri point atau skrip cmd yang mengisi database pada saat dijalankan.

Semua saran ini mengharuskan Anda menggunakan Volume untuk mengelola data setelah penampung berjalan. Atau, Anda dapat menulis Dockerfile Anda sendiri dan tidak mendeklarasikan volume. Anda kemudian dapat menggunakan docker commit untuk membuat gambar baru setelah menambahkan data. Ini mungkin akan berhasil dalam jangka pendek, tetapi jelas bukan cara Anda bekerja dengan container - ini tidak dapat diulang dan pada akhirnya Anda akan kehabisan lapisan di Union File System.

Lihat dokumen resmi Docker tentang mengelola data dalam container untuk info selengkapnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memperbarui ID urutan postgreSQL secara massal untuk semua tabel

  2. Gabung mandiri rekursif Postgresql

  3. Paket PGLogical 1.1 untuk PostgreSQL 9.6beta1

  4. Temukan baris dengan beberapa bidang duplikat dengan Rekaman Aktif, Rel &Postgres

  5. Bagaimana Cos() Bekerja di PostgreSQL