PostgreSQL with Docker: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 5: Line 5:
=Overview=
=Overview=


A transient Posgres container instance can be started and exposed on a local host port as shown in the [[#Running_a_Transient_Instance|Running a Transient Instance]] section.
In its simplest form,


<syntaxhighlight lang='bash'>
docker run postgres
</syntaxhighlight >
command starts a transient Posgres container instance that does not expose any port on the local host, it is initialized on the fly to allow access to any user and uses an anonymous local volume that will '''not''' be reattached to during the next run. To get a usable Postgres instance we can shut down and restart and that regains access to stored data between restarts, we should use the following:
<font color=darkgray>
<font color=darkgray>
* simplest image - data is lost
* simplest image - data is lost

Revision as of 17:18, 18 October 2018

Internal

Overview

In its simplest form,

docker run postgres

command starts a transient Posgres container instance that does not expose any port on the local host, it is initialized on the fly to allow access to any user and uses an anonymous local volume that will not be reattached to during the next run. To get a usable Postgres instance we can shut down and restart and that regains access to stored data between restarts, we should use the following:

  • simplest image - data is lost
  • external volume
  • port mapping.

Running a Transient Instance

Postgres binds by default on port 5432 and this is the port published by the following command:

docker run -p 5432:5432/tcp  postgres

The command will implicitly create a local anonymous volume that will linger around after the container stops. The data on the anonymous local volume can be accessed by starting the stopped container. Test

You can attach to the container with:

docker exec -it <container-id> bash