<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Docker%3A_PostgreSQL</id>
	<title>Docker: PostgreSQL - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Docker%3A_PostgreSQL"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Docker:_PostgreSQL&amp;action=history"/>
	<updated>2026-04-22T10:35:24Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Docker:_PostgreSQL&amp;diff=297446&amp;oldid=prev</id>
		<title>Joan: Es crea la pàgina amb «__TOC__ =Referències= *https://hub.docker.com/_/postgres *https://dev.to/andre347/how-to-easily-create-a-postgres-database-in-docker-4moj =Imatge oficial de PostgreSQ...».</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Docker:_PostgreSQL&amp;diff=297446&amp;oldid=prev"/>
		<updated>2021-08-05T18:17:05Z</updated>

		<summary type="html">&lt;p&gt;Es crea la pàgina amb «__TOC__ =Referències= *https://hub.docker.com/_/postgres *https://dev.to/andre347/how-to-easily-create-a-postgres-database-in-docker-4moj =Imatge oficial de PostgreSQ...».&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__TOC__&lt;br /&gt;
=Referències=&lt;br /&gt;
*https://hub.docker.com/_/postgres&lt;br /&gt;
*https://dev.to/andre347/how-to-easily-create-a-postgres-database-in-docker-4moj&lt;br /&gt;
=Imatge oficial de PostgreSQL=&lt;br /&gt;
*https://hub.docker.com/_/postgres&lt;br /&gt;
&lt;br /&gt;
Baixem la imatge oficial de postgres:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd dockerprojects/&lt;br /&gt;
$ docker pull postgres&lt;br /&gt;
...&lt;br /&gt;
Status: Downloaded newer image for postgres:latest&lt;br /&gt;
docker.io/library/postgres:latest&lt;br /&gt;
&lt;br /&gt;
$ docker image ls&lt;br /&gt;
...&lt;br /&gt;
postgres                 latest    b2fcd079c1d4   2 weeks ago    315MB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The default postgres user and database are created in the entrypoint with initdb. Aquest ''entrypoint'' està en la imatge.&lt;br /&gt;
&lt;br /&gt;
I ara ja podem arrencar la imatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres&lt;br /&gt;
&lt;br /&gt;
$ docker ps -a&lt;br /&gt;
CONTAINER ID   IMAGE      COMMAND                  CREATED          STATUS         PORTS      NAMES&lt;br /&gt;
6061e2acb18b   postgres   &amp;quot;docker-entrypoint.s…&amp;quot;   11 seconds ago   Up 9 seconds   5432/tcp   some-postgres&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara, si volem entrar en el postgres:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker exec -ti some-postgres psql -U postgres&lt;br /&gt;
psql (13.3 (Debian 13.3-1.pgdg100+1))&lt;br /&gt;
Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;
&lt;br /&gt;
postgres=#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Només tenim la base de dades ''postgres'' (i les altres dos per defecte). Però a partir d'aquí ja podem crear una base de dades, crear taules, etc.&lt;br /&gt;
&lt;br /&gt;
Anem a esborrar tot el que hem fet. Primer, aturem i eliminem el contenidors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker stop 6061e2acb18b -&amp;gt; status: exited si fem ''ps -a''&lt;br /&gt;
$ docker rm 6061e2acb18b -&amp;gt; ja no apareix si fem ''ps -a''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara eliminem la imatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker image rm b2fcd079c1d4&lt;br /&gt;
Untagged: postgres:latest&lt;br /&gt;
Untagged: postgres@sha256:6647385dd9ae11aa2216bf55c54d126b0a85637b3cf4039ef24e3234113588e3&lt;br /&gt;
Deleted: sha256:b2fcd079c1d403dc1dba5397ca1bca606f17ebcf99b03b66c59941929acff57c&lt;br /&gt;
Deleted: sha256:99eda903f9144cce86fd8420b7c8b4f149891a7526447b31fa75cbcf8319cffd&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=Modificació per treballar amb una base de dades pròpia=&lt;br /&gt;
*https://dev.to/andre347/how-to-easily-create-a-postgres-database-in-docker-4moj&lt;br /&gt;
&lt;br /&gt;
Ara el que volem és fer un ''dockerfile'' de manera que creem ja una base de dades per treballar.&lt;br /&gt;
&lt;br /&gt;
En la primera referència, en l'apartat ''Initialization scripts'', es comenta que hi ha la carpeta ''docker-entrypoint-initdb.d/'', i que els scripts que conté s'executen en el moment del build (ja siguin .sh o .sql). Aquesta carpeta està en la imatge, no és un directori local.&lt;br /&gt;
&lt;br /&gt;
Creem el script ''Dockerfile_postgres''_&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
FROM postgres&lt;br /&gt;
ENV POSTGRES_PASSWORD docker&lt;br /&gt;
ENV POSTGRES_DB world&lt;br /&gt;
COPY world.sql /docker-entrypoint-initdb.d/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
La primera línia equival al ''pull'' que hem fet abans. És la imatge oficial de PostgreSQL. Seguim amb les instruccions de donar unes variables d'entorn, i tot seguit copiar el script local ''world.sql'' a la carpeta ''docker-entrypoint-initdb.d/'', que és allà on es mira en la post-instal·lació.&lt;br /&gt;
&lt;br /&gt;
El script ''world.sql'' el trobem en la referència (''https://dev.to/andre347/how-to-easily-create-a-postgres-database-in-docker-4moj'') i conté la creació de les taules, les dades, i les relacions entre taules.&lt;br /&gt;
&lt;br /&gt;
I ara fem el '''build''' a partir d'aquest ''dockerfile'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker build -t my-postgres-db -f ./Dockerfile_postgres ./&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
Step 4/4 : COPY world.sql /docker-entrypoint-initdb.d/&lt;br /&gt;
 ---&amp;gt; 135f428bea67&lt;br /&gt;
Successfully built 135f428bea67&lt;br /&gt;
Successfully tagged my-postgres-db:latest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker image ls&lt;br /&gt;
REPOSITORY               TAG       IMAGE ID       CREATED          SIZE&lt;br /&gt;
my-postgres-db           latest    135f428bea67   24 seconds ago   315MB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara ja el podem executar, per tal de crear el contenidor a partir de la imatge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker run -d --name my-postgresdb-container -p 5432:5432 my-postgres-db&lt;br /&gt;
&lt;br /&gt;
$ docker ps -a&lt;br /&gt;
CONTAINER ID   IMAGE            COMMAND                  CREATED         STATUS         PORTS                    NAMES&lt;br /&gt;
8b4f4fefb380   my-postgres-db   &amp;quot;docker-entrypoint.s…&amp;quot;   6 seconds ago   Up 5 seconds   0.0.0.0:5432-&amp;gt;5432/tcp   my-postgresdb-container&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I ara ja podem executar el contenidor, i ja tindrem disponible la base de dades ''world'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ docker exec -ti my-postgresdb-container psql -U postgres&lt;br /&gt;
&lt;br /&gt;
psql (13.3 (Debian 13.3-1.pgdg100+1))&lt;br /&gt;
Type &amp;quot;help&amp;quot; for help.&lt;br /&gt;
&lt;br /&gt;
postgres=# \l&lt;br /&gt;
                                 List of databases&lt;br /&gt;
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   &lt;br /&gt;
-----------+----------+----------+------------+------------+-----------------------&lt;br /&gt;
...&lt;br /&gt;
 world     | postgres | UTF8     | en_US.utf8 | en_US.utf8 |&lt;br /&gt;
&lt;br /&gt;
postgres=# \c world&lt;br /&gt;
You are now connected to database &amp;quot;world&amp;quot; as user &amp;quot;postgres&amp;quot;.&lt;br /&gt;
postgres=# \dt&lt;br /&gt;
postgres=# select * from country limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Autor}}, agost 2021&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>