|
1 |
| -# Postgres & pgadmin4 docker per Base Dati 2 |
| 1 | +# PostgreSQL & PGAdmin4 come Docker container a scopi didattici |
| 2 | + |
2 | 3 | ## Introduzione
|
3 |
| -Le seguenti istruzioni ti permetteranno di istanziare un Docker contenente il DBMS PostgreSQL e pgadmin4, una interfaccia grafica che consente di amministrare in modo semplificato database di PostgreSQL. Tramite cui è possibile eseguire query tramite il query editor. |
| 4 | +Le seguenti istruzioni permettono di istanziare due Docker container collegati tra loro contenenti: |
| 5 | + |
| 6 | +* il DBMS [PostgreSQL](https://www.postgresql.org/) |
| 7 | +* [PGAdmin4](https://www.pgadmin.org/) |
| 8 | + |
| 9 | +PGAdmin4 è una interfaccia web che consente di amministrare in modo semplificato un server PostgreSQL, scrivere ed eseguire query e file di comandi SQL utilizzando un qualunque browser web. |
4 | 10 |
|
5 | 11 | ## Come iniziare
|
6 |
| -Queste istruzioni permetteranno di installare Docker, e il container e di creare una shared folder fra l'host e il docker. |
| 12 | +Queste istruzioni permetteranno di installare Docker, i container e di creare una shared folder fra l'host e i container. |
7 | 13 |
|
8 | 14 | ### Prerequisiti
|
9 |
| -1. Una macchina con sistema operativo Linux o MacOS. |
10 |
| -2. Bisogna avere i permessi di ***root*** e avere disponibile la porta 5000 e 5432. |
11 |
| -3. Bisogna installare docker, puoi seguire le istruzioni in base al tuo sistema operativo per installarlo [docker.com](https://www.docker.com/) |
12 |
| -### Installazione tramite setup.sh |
13 |
| -5. Scaricare il pacchetto 'dockerBD2' dal [sito del corso](http://tmancini.di.uniroma1.it/index.php?page=teaching.bd2) |
14 |
| -6. eseguire il seguente comando: |
15 |
| -```sh |
16 |
| -$ sudo bash setup.sh |
17 |
| -``` |
18 |
| -7. Eseguire l'accesso tramite il browser all'indirizzo localhost:5000 |
19 |
| -8. Nella dashboard cliccare su 'Add new server' |
20 |
| -9. Nella tab 'General' nel campo Name scrivere 'postgres' |
21 |
| -10. Cambiare tab e scegliere 'Connection' |
22 |
| -11. Nel campo Host name / address' scrivere 'postgres' |
23 |
| -12. Nel campo port se non presente scrivere 5432 |
24 |
| -13. Nel campo Maintenance database scrivere 'postgres' |
25 |
| -14. Nel campo password scrivere 'basedati2' |
26 |
| - |
27 |
| -NB: tutti i campi sono da completare senza apici |
| 15 | +1. Una macchina con sistema operativo Linux o MacOS. Attualmente Windows non è supportato. |
| 16 | +2. Bisogna avere i permessi di ***root*** e avere disponibili le porte 5000 (PGAdmin4) e 5432 (PostgreSQL). (Le porte esposte dai container verso la macchina host possono essere modificate editando il file `.env`). |
| 17 | +3. [Docker](https://www.docker.com/), docker-compose e git installati. Per la loro installazione, si seguano le istruzioni in base al proprio sistema operativo. |
28 | 18 |
|
29 |
| -## Esecuzione dei test |
| 19 | +### Installazione ed avviamento tramite docker-compose |
| 20 | +1. Aprire una shell |
| 21 | +2. Posizionarsi nella directory dove si vuole installare il tutto (ad es., `$HOME/bd2/`). Da qui in poi, chiameremo questa directory `$BASE_DIR`. |
| 22 | + |
| 23 | + cd "$BASE_DIR" |
| 24 | + |
| 25 | +3. Scaricare questo repository nella directory corrente. Per scoprire il comando da utilizzare: |
| 26 | + 1. cliccare il pulsante "Clone" in alto in questa pagina; |
| 27 | + 2. scegliere il metodo "https" dal menu, copiare il comando mostrato (`git clone https://...`); |
| 28 | + 3. incollare il comando nella shell aperta. |
| 29 | + |
| 30 | +4. Avviare il docker container: |
30 | 31 |
|
31 |
| -Per controllare che tutto sia andato a buon fine, caricate nel browser la pagina localhost:5000. |
| 32 | + docker-compose up -d |
| 33 | + |
| 34 | +Alla prima esecuzione, il comando scaricherà da Internet le ultime versioni di PostgreSQL e PGAdmin4 e avvierà i due server. |
| 35 | + |
| 36 | + |
| 37 | +### Configurazione PGAdmin4 |
| 38 | +6. Eseguire l'accesso tramite il browser all'indirizzo <http://localhost:5000> (la propria installazione di PGAdmin4; ovviamente usare il numero di porta corretto se modificato nel file `.env`). |
| 39 | +In caso PGAdmin4 non dovesse rispondere, fare riferimento alla sezione "Esecuzione dei test". |
| 40 | +6. Effettuare il login usando le credenziali riportate nella sezione "Credenziali" |
| 41 | +7. Nella dashboard cliccare su 'Add new server' |
| 42 | +8. Nella tab 'General' nel campo Name scrivere 'postgres' |
| 43 | +9. Cambiare tab e scegliere 'Connection' |
| 44 | +10. Nel campo Host name / address scrivere: `postgres` |
| 45 | +11. Nel campo port se non presente scrivere: `5432` |
| 46 | +12. Nel campo Maintenance database scrivere: `postgres` |
| 47 | +13. Nel campo username scrivere `postgres` |
| 48 | +13. Nel campo password scrivere: `postgres` |
| 49 | +13. Spuntare la casella "Save password" |
32 | 50 |
|
33 | 51 | ## Credenziali
|
34 |
| -è possibile eseguire il comando help tramite il file sh per ottenere le credenziali d'accesso di default: |
35 |
| -```sh |
36 |
| -sudo bash setup.sh -h |
37 |
| -``` |
38 |
| -#### Credenziali PGADMIN4: |
39 |
| -Per eseguire l'accesso a PGADMIN4 utilizzate le seguenti credenziali: |
40 |
| - |
41 |
| -> password: admin |
42 |
| -> port: 5000 |
| 52 | +I container sono già configurati con le seguenti credenziali. |
| 53 | + |
| 54 | +#### Credenziali PGAdmin4: |
| 55 | + |
| 56 | + |
| 57 | +* password: `admin` |
43 | 58 |
|
44 | 59 | #### Credenziali PostgreSQL:
|
45 |
| -Per eseguire tramite linea di comando utilizzate le seguenti credenziali: |
46 | 60 |
|
47 |
| -> id: postgres |
48 |
| -> password: basedati2 |
49 |
| -> port: 5432 |
| 61 | +* user: `postgres` |
| 62 | +* password: `postgres` |
| 63 | + |
| 64 | + |
| 65 | +## Esecuzione dei test |
| 66 | + |
| 67 | +Per controllare che tutto sia andato a buon fine: |
50 | 68 |
|
51 |
| -## Condividiere file tra il Docker e il File System host |
52 |
| -Dopo l'installazione tramite il file setup.sh è possibile trasferire file tra host e docker tramite la cartella nel file system host situata nella locazione: $HOME/dockerFOLDER |
| 69 | +1. Assicurarsi che i container `pgadmin_container` e `postgres_container` siano attivi (nello stato "up") mediante il comando: |
53 | 70 |
|
54 |
| -È possibile eseguire query o file sql tramite l'interfaccia grafica di pgadmin4 con l'utilizzo del suo query editor. |
| 71 | + docker container ls -a |
| 72 | + |
| 73 | +1. Puntare il proprio browser alla URL <http://localhost:5000> (la propria installazione di PGAdmin4; ovviamente usare il numero di porta corretto se modificato nel file `.env`) ed assicurarsi che venga correttamente caricata la pagina di login di PGAdmin4. |
55 | 74 |
|
| 75 | +1. Effettuare il login in PGAdmin4 e assicurarsi che vi sia il server di postgres sotto il menu Servers nella barra laterale sinistra. Se così non fosse, ricontrollare i passi nella sezione "Configurazione PGAdmin4". |
| 76 | + |
| 77 | +## Condividere file tra il Docker e il File System host |
| 78 | +La sottodirectory `postgresData` di `$BASE_DIR` è visibile all'interno del container docker di PostgreSQL. |
| 79 | +Questa directory conterrà i file di configurazione e i database PostgreSQL, che resteranno dunque persistenti anche in caso di interruzione del servizio Docker, o della rimozione dei container. |
56 | 80 |
|
57 | 81 | ## Utilizzare PostgreSQL da linea di comando:
|
58 |
| -Eseguire il seguente comando per accedere alla shell del container. |
59 |
| -```sh |
60 |
| -$ sudo docker exec -it postgres_container bash |
61 |
| -$ psql -U postgres |
62 |
| -``` |
| 82 | +E' possibile avviare il comando `psql` per accedere alla shell di PostgreSQL mediante: |
| 83 | + |
| 84 | + docker exec -it postgres_container psql -U postgres |
| 85 | + |
| 86 | + |
| 87 | +## Altri utili comandi Docker |
| 88 | + |
| 89 | +5. Per fermare l'esecuzione di PostgreSQL e di PGAdmin4 usare il comando: |
| 90 | + |
| 91 | + docker-compose stop |
| 92 | + |
| 93 | +5. Per avviare l'esecuzione di PostgreSQL e di PGAdmin4 usare il comando: |
| 94 | + |
| 95 | + docker-compose start |
| 96 | + |
| 97 | +5. Per reinstallare i docker container di PostgreSQL e di PGAdmin4 usare il comando: |
| 98 | + |
| 99 | + docker-compose down |
| 100 | + docker-compose up -d |
| 101 | + |
| 102 | +I dati (ad es., il contenuto dei propri database) resteranno salvati nella cartella $BASE_DIR. |
| 103 | +Ai successivi avvii, docker utilizzerà le immagini dei container PostgreSQL e di PGAdmin4 scaricate in precedenza. |
| 104 | + |
| 105 | +Si rinvia alla documentazione di Docker per gli usi più avanzati. |
| 106 | + |
63 | 107 | ## Authors
|
64 | 108 |
|
65 | 109 | * **Andrea Bacciu** [Github profile](https://github.com/andreabac3)
|
|
0 commit comments