PostgreSQL with Docker: Difference between revisions
(38 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Internal= | =Internal= | ||
* [[ | * [[PostgreSQL#Subjects|PostgreSQL]] | ||
=Overview= | =Overview= | ||
This article describes how to stand up and operate a Docker-based PostgreSQL instance. The instance will be accessible on the standard PostgreSQL port on the local host and it will be secured by a conventional user and password. Since the password is visible in the terminal used to create the container image, this approach is not really secure, but it is good enough for development purposes. The container-generated data will be stored on an [[Docker_Storage_Concepts#Anonymous_Volume|anonymous]] [[Docker_Storage_Concepts#Local_Volume_Driver|local]] volume. | |||
=Operations= | |||
==Create the Container== | |||
This is an one-time operation: | |||
docker run -p 5432:5432/tcp -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=<some-password> --name postgres postgres | |||
If you want to use a local directory for storage, which will be made available to the container with a [[Docker_Storage_Concepts#Bind_Mount|bind mount]], add the following arguments. Note that this is only necessary if you want to have convenient access to the database files and logs, for troubleshooting and debugging purposes: | |||
--mount type=bind,source=<local-directory>,target=/var/lib/postgresql/data | |||
==Start the Container== | |||
docker start postgres | |||
docker | |||
==Stop the Container== | |||
docker stop postgres | |||
==Access Container Logs== | |||
docker logs -f postgres |
Latest revision as of 20:20, 19 October 2018
Internal
Overview
This article describes how to stand up and operate a Docker-based PostgreSQL instance. The instance will be accessible on the standard PostgreSQL port on the local host and it will be secured by a conventional user and password. Since the password is visible in the terminal used to create the container image, this approach is not really secure, but it is good enough for development purposes. The container-generated data will be stored on an anonymous local volume.
Operations
Create the Container
This is an one-time operation:
docker run -p 5432:5432/tcp -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=<some-password> --name postgres postgres
If you want to use a local directory for storage, which will be made available to the container with a bind mount, add the following arguments. Note that this is only necessary if you want to have convenient access to the database files and logs, for troubleshooting and debugging purposes:
--mount type=bind,source=<local-directory>,target=/var/lib/postgresql/data
Start the Container
docker start postgres
Stop the Container
docker stop postgres
Access Container Logs
docker logs -f postgres