So recently I ran into a bit of a snafu. I wanted to do some SQL prototyping (with postgres) on my local machine but didn’t have the appropriate permissions to install and mess around with it. The postgres Docker image really came in handy. Below are some notes about what I did to get up and running with postgres in Docker. I thought they might come in handy to a Data Scientist or Machine Learning engineer facing a similar situation.
Once you have Docker up and running on your machine you just have to run a container of the postgres image from the command line.
docker run -e POSTGRES_USER=foo -e POSTGRES_PASSWORD=foo -d postgres
Then you can bash into the container. You can find the container name by running
docker exec -it <container name> /bin/bash
Now we’re in the container but we need to switch user (postgres prevents you from doing pretty much anything as root)
useradd foo su - foo
Finally, we can launch
psql (the terminal interface to postgres). Your prompt should now start with
foo=#. Now we can quickly create tables and execute queries.
CREATE TABLE synthetic (id VARCHAR(1), var1 INT, var2 INT); INSERT INTO synthetic (id, var1, var2) VALUES ('A', 1, 1), ('B', 1, 0); SELECT * FROM synthetic;
id | var1 | var2 ----+------+------ A | 1 | 1 B | 1 | 0
foo=# \dt List of relations Schema | Name | Type | Owner --------+-----------+-------+------- public | synthetic | table | foo (1 row)
Don’t forget to shutdown the container with
docker stop <container name> when you’re done.