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