From a61a22f7077ebcd0133b05200ad3992bb95ce807 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Sat, 24 Feb 2024 12:44:23 -0600 Subject: [PATCH] Add Configure Different Host And Container Ports as a Docker TIL --- README.md | 7 +++- ...gure-different-host-and-container-ports.md | 34 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 docker/configure-different-host-and-container-ports.md diff --git a/README.md b/README.md index b1d52a7..8113046 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1375 TILs and counting..._ +_1376 TILs and counting..._ --- @@ -24,6 +24,7 @@ _1375 TILs and counting..._ * [CSS](#css) * [Deno](#deno) * [Devops](#devops) +* [Docker](#docker) * [Elixir](#elixir) * [Gatsby](#gatsby) * [Git](#git) @@ -184,6 +185,10 @@ _1375 TILs and counting..._ - [SSL Certificates Can Cover Multiple Domains](devops/ssl-certificates-can-cover-multiple-domains.md) - [Wipe A Heroku Postgres Database](devops/wipe-a-heroku-postgres-database.md) +### Docker + +- [Configure Different Host And Container Ports](docker/configure-different-host-and-container-ports.md) + ### Elixir - [All Values For A Key In A Keyword List](elixir/all-values-for-a-key-in-a-keyword-list.md) diff --git a/docker/configure-different-host-and-container-ports.md b/docker/configure-different-host-and-container-ports.md new file mode 100644 index 0000000..bf49ec2 --- /dev/null +++ b/docker/configure-different-host-and-container-ports.md @@ -0,0 +1,34 @@ +# Configure Different Host And Container Ports + +A `docker-compose.yml` file that sets up something like a PostgreSQL service +will proxy a port from your host machine to a port on the docker container. + +A basic PostgreSQL service will look like this tying `5432` to `5432` under the +`ports` section. + +```yaml +version: "3.7" +services: + postgres: + image: postgres:latest + restart: always + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - POSTGRES_DB=postgres + ports: + - "5432:5432" + volumes: + - ./postgres-data:/var/lib/postgresql/data +``` + +Requests like queries from a `psql` instance that we send to `localhost:5432` +will be proxied to `docker-container:5432`. + +Since those numbers are the same on both sides, it's not necessarily clear +which is which. The left is the _host_ and the right is the _container_ -- +`[host-port]:[container-port]`. + +If you need to use a port other than 5432 on your host machine (e.g. maybe +you're running multiple Postgres servers at once), then you can just change the +port number on the left side. How about `9876:5432`.