course
सेशनों के बीच स्विच करना, सिंटैक्स याद रखना, और उम्मीद करना कि आपने किसी विनाशकारी क्वेरी में टाइपो नहीं किया है—यह सब जल्दी ही थका देता है। कोई विज़ुअल क्वेरी प्लान नहीं, कोई स्कीमा ब्राउज़र नहीं, और डेटाबेस का आसान बैकअप लेने का तरीका भी नहीं। यह चलता है, पर आदर्श नहीं है।
pgAdmin 4 इसे PostgreSQL के लिए विशेष रूप से बने ब्राउज़र-आधारित GUI से ठीक करता है। और इसे Docker में चलाने का मतलब है कि लोकल इंस्टॉलेशन शून्य—बस कंटेनर शुरू करना होता है।
इस लेख में, मैं आपको दिखाऊँगा कि Docker Compose के साथ PostgreSQL और pgAdmin 4 कैसे सेट करें, दोनों कंटेनरों को कैसे कनेक्ट करें, और pgAdmin के Query Tool, स्कीमा ब्राउज़र, और बैकअप फीचर्स का उपयोग कैसे करें।
साथ चलने के लिए, आपके मशीन पर Docker इंस्टॉल और रनिंग होना चाहिए। यदि आप Docker Compose में नए हैं, तो हमारा गाइड पढ़ें और देखें कि यह मल्टी-कंटेनर डेवलपमेंट को कैसे सरल बनाता है।
pgAdmin 4 क्या है?
pgAdmin 4 PostgreSQL के लिए एक ओपन-सोर्स, ब्राउज़र-आधारित एडमिन और डेवलपमेंट प्लेटफ़ॉर्म है। आप इसे वेब ब्राउज़र से एक्सेस करते हैं, इसलिए कोई डेस्कटॉप ऐप इंस्टॉल करने की जरूरत नहीं। यह आपको डेटाबेस मैनेज करने, क्वेरियाँ चलाने, स्कीमा देखने, और बैकअप हैंडल करने के लिए GUI देता है—वह भी कमांड लाइन छुए बिना।
आधिकारिक Docker इमेज dpage/pgadmin4 है, जिसे pgAdmin डेवलपमेंट टीम मेंटेन करती है।
Docker में pgAdmin 4 चलाने के कुछ बड़े फायदे लोकल इंस्टॉल पर हैं। पहला है पोर्टेबिलिटी—आपका पूरा डेटाबेस वातावरण एक docker-compose.yml फ़ाइल में रहता है जिसे आप टीम के साथ साझा कर सकते हैं। दूसरा, कोई वर्ज़न कॉन्फ्लिक्ट नहीं—pgAdmin अपने कंटेनर में चलता है, आपके मशीन की बाकी चीज़ों से पूरी तरह आइसोलेटेड। और जब काम हो जाए, docker compose down सब साफ कर देता है।
pgAdmin 4 बनाम अन्य PostgreSQL GUIs
डेटाबेस मैनेजमेंट GUI टूल्स की कमी नहीं है। यहाँ देखें कि pgAdmin 4 दो लोकप्रिय विकल्पों की तुलना में कैसा है।

pgAdmin 4 बनाम लोकप्रिय विकल्प
DBeaver और TablePlus अच्छे टूल हैं, लेकिन दोनों की आधिकारिक Docker इमेज नहीं है। अगर आपका PostgreSQL इंस्टेंस पहले से Docker में चल रहा है, तो pgAdmin 4 बेहतरीन फिट है—बस आपको अपने docker-compose.yml में एक सर्विस जोड़नी है और सब कुछ एक ही नेटवर्क में साथ चलता है।
Docker Compose के साथ वातावरण सेट करना
PostgreSQL और pgAdmin 4 को साथ में चलाने का सबसे तेज़ तरीका एक ही docker-compose.yml फ़ाइल है। यदि आप इस विषय में नए हैं, तो हमारा Docker Compose गाइड आधारभूत बातें कवर करता है। यहाँ, मैं pgAdmin-विशिष्ट कॉन्फ़िगरेशन पर ध्यान दूँगा।
यहाँ पूरी फ़ाइल है जिसे आप कॉपी-पेस्ट कर सकते हैं:
services:
postgres:
image: postgres:18
container_name: postgres
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
POSTGRES_DB: mydb
volumes:
- postgres_data:/var/lib/postgresql
networks:
- pgnetwork
pgadmin:
image: dpage/pgadmin4:9.13
container_name: pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: you@yourdomain.com
PGADMIN_DEFAULT_PASSWORD: password
PGADMIN_LISTEN_PORT: 5050
ports:
- "5050:5050"
volumes:
- pgadmin_data:/var/lib/pgadmin
depends_on:
- postgres
networks:
- pgnetwork
volumes:
postgres_data:
pgadmin_data:
networks:
pgnetwork:
depends_on फ़ील्ड Docker Compose को बताता है कि pgadmin से पहले postgres कंटेनर शुरू करें। इसके बिना, pgAdmin PostgreSQL के तैयार होने से पहले शुरू हो सकता है और कनेक्ट होने में विफल हो सकता है। यह PostgreSQL के पूरी तरह हेल्दी होने का इंतज़ार नहीं करता—सिर्फ कंटेनर शुरू होने का। फिर भी यह ज़्यादातर रेस कंडीशन्स से बचने के लिए पर्याप्त है।
pgAdmin 4 environment variables
दो environment variables अनिवार्य हैं:
PGADMIN_DEFAULT_EMAIL- वह ईमेल पता जिससे आप pgAdmin वेब इंटरफ़ेस में लॉग इन करेंगेPGADMIN_DEFAULT_PASSWORD- उस खाते का पासवर्ड
तीसरा वैकल्पिक है लेकिन आपको इसे निर्दिष्ट करना चाहिए:
PGADMIN_LISTEN_PORT- कंटेनर के अंदर वह पोर्ट जिस पर pgAdmin सुनता है। डिफ़ॉल्ट 80 है, पर इसे5050करने से पोर्ट मैपिंग साफ रहती है।
यह कहा जाए, तो क्रेडेंशियल्स को Compose फ़ाइल में हार्डकोड करना एक बुरा विचार है, खासकर यदि फ़ाइल वर्ज़न कंट्रोल में चली जाए। इन्हें .env फ़ाइल में ले जाएँ।
अपने docker-compose.yml के समान डायरेक्टरी में एक .env फ़ाइल बनाएँ:
POSTGRES_USER=admin
POSTGRES_PASSWORD=secret
POSTGRES_DB=mydb
PGADMIN_DEFAULT_EMAIL=admin@example.com
PGADMIN_DEFAULT_PASSWORD=secret
फिर अपने Compose फ़ाइल में इन वेरिएबल्स का रेफ़रेंस दें:
# postgres
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
# pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
जब आप कमांड चलाते हैं, Docker Compose .env फ़ाइल उठा लेता है, इसलिए अतिरिक्त कॉन्फ़िगरेशन की ज़रूरत नहीं। बस याद रखें कि .env को अपने .gitignore में जोड़ दें और आपके क्रेडेंशियल्स रेपो से बाहर रहेंगे।
वॉल्यूम्स और डेटा पर्सिस्टेंस
/var/lib/pgadmin पर मैप किया गया वॉल्यूम वह जगह है जहाँ pgAdmin डेटा स्टोर करता है, जैसे सेशन डेटा, सेव्ड सर्वर कनेक्शन, और कॉन्फ़िगरेशन। इसे compose फ़ाइल से हटाने का मतलब है कि कंटेनर हर रीस्टार्ट पर यह सब खो जाएगा।
मौजूदा compose फ़ाइल में आपके पास एक नामित वॉल्यूम है जिसे Docker आपके होस्ट मशीन पर मैनेज करता है। डेटा कंटेनर रीस्टार्ट, री-क्रिएशन, और इमेज अपडेट के बीच बना रहता है—जब तक कि आप वॉल्यूम को docker volume rm से स्पष्ट रूप से डिलीट न कर दें।
स्टैक शुरू करना और pgAdmin 4 तक पहुँचना
जब आपका docker-compose.yml तैयार हो, तो स्टैक शुरू करने के लिए एक कमांड पर्याप्त है:
docker compose up -d
-d फ्लैग दोनों कंटेनरों को detached मोड में चलाता है—वे बैकग्राउंड में शुरू होते हैं और आपका टर्मिनल खाली रहता है। यह जाँचने के लिए कि दोनों कंटेनर रनिंग हैं:
docker ps
आपको postgres और pgadmin दोनों Up स्टेटस के साथ दिखने चाहिए।

कंटेनर स्टेटस
यदि कुछ गड़बड़ लगे, तो pgAdmin लॉग्स देखें:
docker logs pgadmin
हेल्दी स्टार्टअप कुछ ऐसा दिखता है:

pgAdmin स्टार्टअप लॉग्स
यदि यहाँ त्रुटि दिखे, तो संभवतः ये तीन में से एक होगी:
-
Password authentication failed: आपका
PGADMIN_DEFAULT_PASSWORD.envफ़ाइल में गायब है या गलत बना हुआ है -
Port is already allocated: पोर्ट 5050 पर कुछ और चल रहा है; अपने Compose फ़ाइल में होस्ट पोर्ट बदलें
-
No such file or directory: वॉल्यूम पाथ गलत है या कंटेनर को उस पर लिखने की अनुमति नहीं है
जब दोनों कंटेनर चल रहे हों और लॉग्स साफ दिखें, तो अपने ब्राउज़र में http://localhost:5050 खोलें:

pgAdmin लॉगिन पेज
PGADMIN_DEFAULT_EMAIL और PGADMIN_DEFAULT_PASSWORD में सेट ईमेल और पासवर्ड से लॉग इन करें। आप pgAdmin डैशबोर्ड पर पहुँचेंगे, जहाँ आप अपना PostgreSQL सर्वर रजिस्टर कर सकते हैं:

pgAdmin होम पेज
pgAdmin 4 को अपने PostgreSQL कंटेनर से जोड़ना
pgAdmin की साइडबार में, Servers पर राइट-क्लिक करें - Register - Server। एक डायलॉग खुलेगा जिसमें दो टैब भरने हैं: General और Connection।
General टैब
अपने सर्वर को एक अर्थपूर्ण नाम दें—जैसे local-dev-postgres। यह सिर्फ pgAdmin के अंदर का लेबल है, इसलिए अपने सेटअप के अनुसार कुछ भी चुनें।

सर्वर पंजीकरण - General टैब
Connection टैब
यहाँ localhost का उपयोग न करें।
Docker नेटवर्क के अंदर, localhost कंटेनर स्वयं को संदर्भित करता है—न कि आपका होस्ट मशीन, और न ही PostgreSQL कंटेनर। Docker का अपना आंतरिक DNS होता है, जो आपके docker-compose.yml में परिभाषित सर्विस नामों से कंटेनर नाम रेज़ॉल्व करता है। तो यदि आपके PostgreSQL सर्विस का नाम postgres है, तो वही होस्टनेम उपयोग करें।
फील्ड्स इस प्रकार भरें:
-
Host name/address:
postgres(docker-compose.ymlका सर्विस नाम) -
Port:
5432 -
Maintenance database: आपके Compose फ़ाइल का
POSTGRES_DBमान (उदा.,mydb) -
Username:
POSTGRES_USERका मान (उदा.,admin) -
Password:
POSTGRES_PASSWORDका मान
Save पर क्लिक करें।

सर्वर पंजीकरण - Connection टैब
यदि सब सही है, तो सर्वर साइडबार में दिखाई देगा और आप इसे एक्सपैंड करके अपने डेटाबेस देख पाएँगे:

सफल सर्वर पंजीकरण
इसका मतलब है कि आप कनेक्ट हो चुके हैं।
Query Tool का उपयोग
अब जब आप कनेक्ट हो चुके हैं, तो मैं आपको pgAdmin 4 और सामान्य रूप से Postgres की बुनियादी बातें दिखाऊँगा।
टॉप मेनू से Tools - Query Tool पर क्लिक करके Query Tool खोलें। इंटरफ़ेस में तीन पैनल होते हैं:
- Editor: जहाँ आप SQL लिखते हैं
- Data Output: जहाँ क्वेरी चलाने के बाद परिणाम दिखते हैं
- Messages: जहाँ PostgreSQL स्टेटस मैसेज, एरर, और एक्ज़ीक्यूशन जानकारी भेजता है

क्वेरी टूल
SQL लिखना और चलाना
आइए एक साधारण orders टेबल बनाते हैं और कुछ डेटा जोड़ते हैं। आप हर ब्लॉक को Play बटन दबाकर या F5 शॉर्टकट से चला सकते हैं।
टेबल बनाने के लिए यह चलाएँ:
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_name VARCHAR(100) NOT NULL,
product VARCHAR(100) NOT NULL,
quantity INT NOT NULL,
order_date DATE DEFAULT CURRENT_DATE
);
कुछ पंक्तियाँ जोड़ें:
INSERT INTO orders (customer_name, product, quantity)
VALUES
('Alice Johnson', 'Wireless Keyboard', 2),
('Bob Smith', 'USB-C Hub', 1),
('Carol White', 'Mechanical Keyboard', 3);
और अब डेटा क्वेरी करें:
SELECT * FROM orders;

डेटा क्वेरी करना
परिणाम Data Output पैनल में तालिका के रूप में दिखाई देते हैं। आप कॉलमों को सॉर्ट कर सकते हैं, उनका आकार बदल सकते हैं, और ग्रिड से सीधे पंक्तियाँ कॉपी कर सकते हैं।
विज़ुअल क्वेरी प्लान पढ़ना
यह देखने के लिए कि क्वेरी चलने पर पर्दे के पीछे क्या होता है, अपने SELECT स्टेटमेंट पर EXPLAIN ANALYZE चलाएँ:
EXPLAIN ANALYZE SELECT * FROM orders WHERE customer_name = 'Alice Johnson';

Explain Analyze परिणाम
Data Output पैनल रॉ आउटपुट दिखाता है। लेकिन pgAdmin के पास इससे बेहतर विकल्प है। टूलबार में Explain बटन पर क्लिक करें—और pgAdmin क्वेरी प्लान को एक इंटरैक्टिव ग्राफ़ के रूप में रेंडर कर देता है।

ग्राफ़ के रूप में क्वेरी प्लान
अभी के लिए यह क्वेरी सरल है, लेकिन यदि आप टेबल जॉइन कर रहे हों या अधिक जटिल एग्रीगेशन कर रहे हों, तो आपको इससे कहीं अधिक जानकारी मिलेगी।
यह इसलिए महत्वपूर्ण है क्योंकि रॉ EXPLAIN आउटपुट पढ़ना धीमा और त्रुटिपूर्ण हो सकता है। विज़ुअल प्लान से साफ दिख जाता है कि PostgreSQL किसी बड़े टेबल पर फुल टेबल स्कैन कर रहा है, या कोई इंडेक्स मौजूद होने पर भी उपयोग नहीं हो रहा।
अपने डेटाबेस स्कीमा का प्रबंधन
pgAdmin की साइडबार आपके डेटाबेस स्ट्रक्चर का पूरा दृश्य देती है—और GUI के माध्यम से उसे संशोधित करने देती है।
साइडबार ट्री इस प्रकार चलता है: Servers - आपका सर्वर नाम - Databases - आपका डेटाबेस - Schemas - public - Tables। किसी भी टेबल को एक्सपैंड करें और आपको उसकी Columns, Indexes, और Constraints चाइल्ड नोड्स के रूप में दिखेंगे। किसी पर भी क्लिक करके दाएँ पैनल में विवरण देखें।
टेबल बनाना और संशोधित करना
नई टेबल बनाने के लिए, अपने स्कीमा के अंतर्गत Tables पर राइट-क्लिक करें और Create - Table चुनें। एक डायलॉग खुलेगा जिसमें कुछ टैब होंगे।

टेबल बनाना
General टैब में आप टेबल का नाम सेट करते हैं। कॉलम जोड़ने के लिए Columns टैब पर स्विच करें—हर पंक्ति में आप कॉलम नाम, डेटा टाइप, लंबाई, और nullable होना/न होना सेट कर सकते हैं। Constraints टैब में प्राइमरी की, फ़ॉरेन की, और यूनिक constraints सेट होते हैं।
मौजूदा टेबल में इंडेक्स जोड़ने के लिए, साइडबार में टेबल को एक्सपैंड करें, Indexes पर राइट-क्लिक करें, और Create - Index चुनें। इंडेक्स करने के लिए कॉलम चुनें और इंडेक्स टाइप चुनें—btree डिफ़ॉल्ट है और अधिकांश मामलों में काम करता है।

इंडेक्स बनाना
बैकअप और रिस्टोर
डेटाबेस का बैकअप लेने के लिए, Tools - Backup पर जाएँ। आपको एक फ़ॉर्मैट चुनना होगा:
- Custom: कंप्रेस्ड, बाइनरी फ़ॉर्मैट; सबसे लचीला विकल्प और अधिकांश मामलों के लिए सर्वोत्तम क्योंकि आप इससे व्यक्तिगत टेबल्स को रिस्टोर कर सकते हैं
- Plain: एक सादा SQL स्क्रिप्ट जिसे आप किसी भी टेक्स्ट एडिटर में खोलकर पढ़ सकते हैं
- Tar: अनकंप्रेस्ड आर्काइव; कम सामान्य लेकिन कुछ रिस्टोर वर्कफ़्लो में उपयोगी
फ़ॉर्मैट और डेस्टिनेशन पाथ चुनने के बाद, pgAdmin बैकग्राउंड में pg_dump चलाता है और फ़ाइल आपके लोकल मशीन पर सेव कर देता है।

बैकअप बनाना
रिस्टोर करने के लिए, Tools - Restore पर जाएँ, अपनी बैकअप फ़ाइल चुनें, और उसे लक्षित डेटाबेस पर पॉइंट करें।

बैकअप से रिस्टोर करना
यदि आप सोच रहे हैं यह क्यों उपयोगी है, तो कल्पना करें कि आप अपने डेवलपमेंट डेटाबेस पर किसी विनाशकारी माइग्रेशन का परीक्षण कर रहे हैं। पहले बैकअप लें, माइग्रेशन चलाएँ, और यदि कुछ टूटे, तो बैकअप रिस्टोर करके ज्ञात स्थिति पर लौट आएँ।
Docker में pgAdmin 4 चलाने के लिए सर्वोत्तम प्रथाएँ
pgAdmin 4 चलाना एक बात है। लेकिन इसे सुचारू रूप से चलाए रखना कुछ अतिरिक्त बातों के ज्ञान पर निर्भर करता है। यहाँ कुछ व्यावहारिक सुझाव हैं।
क्रेडेंशियल्स को Compose फ़ाइल से बाहर रखें
यदि आपकी docker-compose.yml वर्ज़न कंट्रोल में चली जाती है—जो आमतौर पर होता है—तो हार्डकोडेड पासवर्ड्स भी साथ चले जाते हैं। क्रेडेंशियल्स के लिए .env फ़ाइल का उपयोग करें और उसे .gitignore में जोड़ें। प्रोडक्शन वातावरण में, एक कदम आगे बढ़ें और Docker secrets का उपयोग करें, जो संवेदनशील मानों को environment variables के बजाय फ़ाइलों के रूप में माउंट करते हैं।
pgAdmin पोर्ट को कभी पब्लिकली एक्सपोज़ न करें
डिफ़ॉल्ट रूप से, Docker पोर्ट्स को 0.0.0.0 से बाँधता है, जिसका मतलब है कोई भी नेटवर्क इंटरफ़ेस—पब्लिक वाले भी। किसी रिमोट सर्वर पर, इससे आपका pgAdmin इंस्टेंस इंटरनेट से पहुँच योग्य हो जाता है। इसके बजाय 127.0.0.1 से स्पष्ट रूप से बाँधें:
ports:
- "127.0.0.1:5050:5050"
इससे pgAdmin केवल सर्वर से ही एक्सेस किया जा सकेगा। रिमोट एक्सेस की ज़रूरत हो तो SSH टनल या रिवर्स प्रॉक्सी का उपयोग करें।
अपनी इमेज टैग्स पिन करें
dpage/pgadmin4:latest उपयोग करने पर अगली बार कोई docker compose pull चलाएगा तो नया वर्ज़न खिंच सकता है। नया वर्ज़न अलग तरह से व्यवहार कर सकता है, आपकी कॉन्फ़िग तोड़ सकता है, या अनपेक्षित बदलाव ला सकता है। dpage/pgadmin4:9.13 जैसे विशिष्ट टैग का उपयोग करें ताकि हर टीममेट बिल्कुल एक ही वर्ज़न चलाए।
servers.json से सर्वर कनेक्शंस प्रीलोड करें
यदि आपकी पूरी टीम एक ही Compose सेटअप साझा करती है, तो स्टैक स्पिन-अप करने के बाद हर किसी को PostgreSQL सर्वर रजिस्टर करने के लिए मजबूर न करें। pgAdmin एक servers.json फ़ाइल सपोर्ट करता है जो स्टार्टअप पर कनेक्शंस को प्री-पॉप्युलेट कर देता है। इसे इस तरह कंटेनर में माउंट करें:
volumes:
- ./servers.json:/pgadmin4/servers.json
न्यूनतम servers.json कुछ ऐसा दिखता है:
{
"Servers": {
"1": {
"Name": "local-dev-postgres",
"Group": "Servers",
"Host": "postgres",
"Port": 5432,
"MaintenanceDB": "mydb",
"Username": "admin",
"SSLMode": "prefer"
}
}
}
pgAdmin स्टार्ट होते ही सर्वर दिख जाएगा—कोई मैनुअल सेटअप आवश्यक नहीं।
निष्कर्ष
इस लेख में, मैंने आपको शुरू से Docker में pgAdmin 4 सेट करना सिखाया। आपने एक Docker Compose फ़ाइल लिखी जो PostgreSQL और pgAdmin 4 को साथ लाती है, Docker के आंतरिक DNS का उपयोग करके दोनों कंटेनरों को जोड़ा, और pgAdmin की मुख्य विशेषताएँ—Query Tool, स्कीमा ब्राउज़र, और बैकअप/रिस्टोर वर्कफ़्लो—उपयोग कीं।
यहाँ मूल सिद्धांत है—reproducibility।
docker-compose.yml फ़ाइल, servers.json, और .env फ़ाइल—बस इतना काफी है कि आप किसी टीममेट को पूरी तरह कॉन्फ़िगर किया हुआ डेटाबेस वातावरण दे सकें। इससे “यह मेरी मशीन पर तो चलता है” वाली समस्या फिर नहीं आएगी।
Docker और कंटेनराइज़ेशन पर गहराई से जाने के लिए, हमारा Intermediate Docker कोर्स देखें। इसमें मल्टी-स्टेज बिल्ड्स, नेटवर्किंग, और Compose पर गहन जानकारी के साथ उपयोगी टिप्स भरे हुए हैं।
Docker pgAdmin FAQs
क्या मैं Windows और macOS पर Docker में pgAdmin 4 चला सकता/सकती हूँ?
हाँ। dpage/pgadmin4 इमेज किसी भी ऑपरेटिंग सिस्टम पर चलती है जो Docker को सपोर्ट करता है, जिनमें Windows और macOS शामिल हैं। सेटअप प्रक्रिया और docker-compose.yml फ़ाइल सभी प्लेटफ़ॉर्म पर समान है।
क्या मुझे हर बार Docker इमेज अपडेट करने पर pgAdmin 4 फिर से इंस्टॉल करना होगा?
नहीं। जब तक आपने /var/lib/pgadmin को किसी नामित वॉल्यूम से मैप किया है, नई इमेज वर्ज़न पुल करने से आपके सेव्ड डेटा पर प्रभाव नहीं पड़ेगा। आपके सर्वर कनेक्शन, सेशन डेटा, और कॉन्फ़िगरेशन इमेज अपडेट्स और कंटेनर रीस्टार्ट्स के बाद भी सुरक्षित रहते हैं।
क्या प्रोडक्शन डेटाबेस के लिए Docker में pgAdmin 4 का उपयोग सुरक्षित है?
डेवलपमेंट और इंटरनल टूलिंग के लिए Docker में pgAdmin 4 ठीक है, लेकिन प्रोडक्शन डेटाबेस से जोड़ने से पहले इसे सुरक्षित करना ज़रूरी है। pgAdmin पोर्ट को कभी पब्लिकली एक्सपोज़ न करें, क्रेडेंशियल्स के लिए हमेशा .env फ़ाइल या Docker secrets का उपयोग करें, और यदि रिमोट एक्सेस चाहिए तो pgAdmin को ऑथेंटिकेशन वाले रिवर्स प्रॉक्सी के पीछे रखने पर विचार करें।
जब pgAdmin को PostgreSQL से जोड़ते समय मैं होस्टनेम के रूप में `localhost` का उपयोग क्यों नहीं कर सकता/सकती?
Docker नेटवर्क के अंदर, localhost कंटेनर स्वयं को रेज़ॉल्व करता है—न कि आपका होस्ट मशीन या कोई अन्य कंटेनर। Docker का अपना आंतरिक DNS होता है जो आपके docker-compose.yml में परिभाषित सर्विस नामों का उपयोग करके कंटेनर नाम रेज़ॉल्व करता है। इसके बजाय PostgreSQL सर्विस नाम—आम तौर पर postgres—को होस्टनेम के रूप में उपयोग करें।
pgAdmin में Custom, Plain, और Tar बैकअप फ़ॉर्मैट्स में क्या अंतर है?
Custom एक कंप्रेस्ड बाइनरी फ़ॉर्मैट है जो आपको सबसे अधिक लचीलापन देता है—आप पूरे डेटाबेस के बजाय व्यक्तिगत टेबल्स को रिस्टोर कर सकते हैं। Plain एक पठनीय SQL स्क्रिप्ट आउटपुट करता है जिसे आप किसी भी टेक्स्ट एडिटर में खोल सकते हैं, जो रिस्टोर से पहले समीक्षा या संपादन के लिए उपयोगी है। Tar एक अनकंप्रेस्ड आर्काइव है जो कम सामान्य है, लेकिन pg_restore द्वारा सेलेक्टिव रिस्टोर्स के लिए सपोर्टेड है।