postgresql docker - money168/cowsay GitHub Wiki

OS變數
export PG_PORT=5432
export PG_USER=admin
export PG_PWD=secretpwd
可存成 pqldev.env,執行載入os。

增加run_postgres.sh
#!/bin/sh
docker run \
-d \
-p $PG_PORT:5432 \
-e POSTGRES_USER=“$PG_USER” \
-e POSTGRES_PASSWORD=“$PG_PASSWORD” \
-v $PWD/pgdata \
postgres

-d 在背景執行
-p $PG_PORT:5432 將容器內的5432port映射到本機的$PG_PORT
-e 注入環境變數到容器裏,有哪些環境變數可用,可以參考官方連結https://hub.docker.com/_/postgres/
-v 將容器內的檔案掛載到本機,將容器內存放postgres 的資料夾 /var/lib/postgresql/data 掛載到$PWD/pgdata

進去容器裡面create table,下sql指令的話,就是執行
docker exec -it {container id} psql -U $PG_USER
PG_USER是環境變數預設的DB跟PG_USER

===
使用官方 postgresql
docker pull postgres

啟動 PostgreSQL
docker run —name mypostgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
其中 -e POSTGRES_PASSWORD=mysecretpassword 指的是環境變數 POSTGRES_PASSWORD ,
PostgreSQL 在啟動時會讀取環境變數 POSTGRES_PASSWORD 的值,並將之設定為 postgres (PostgreSQL 預設的使用者帳號)的密碼。

連線至 PostgreSQL
由於 PostgreSQL 正在背景執行,所以可以啟動另一個新的 PostgreSQL 然後將其與正在背景執行的 PostgreSQL 連結在一起(link),並利用新啟動的 PostgreSQL 裡的 psql 指令連線至正在背景執行的 PostgreSQL :

docker run -it —rm —link mypostgres:postgres postgres psql -h postgres -U postgres
上述指令會詢問 postgres 的密碼,輸入我們設置環境變數 POSTGRES_PASSWORD 的值即可。

docker run —rm —name mypostgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

⚠️ **GitHub.com Fallback** ⚠️