# [Docker / postgresql] 用docker建立一個postgres ###### tags: `docker`, `postgres` ``` > docker pull postgres > docker run [--name pg] \ -e POSTGRES_USER=dbuser \ -e POSTGRES_PASSWORD=dbpass \ -p 5432:5432 \ -v /home/seal/data:/data \ -d postgres ``` ### 參數解釋 parameters explained : 原始文件: [dockerhub / postgres](https://hub.docker.com/_/postgres) -e Environmental variable 環境變數,在啟動時會傳遞給container的變數 每一個環境變數的設定都要接上 -e #### 使用帳號密碼認證 Auth with username and password POSTGRES_USER 及 POSTGRES_PASSWORD 是連進這個database的使用者帳號密碼 #### 開放任何連線 No auth mode 若將POSTGRES_HOST_AUTH_METHOD 設為 trust,則不須POSTGRES_PASSWORD ```-e POSTGRES_HOST_AUTH_METHOD=trust``` #### 連接埠 Port 用 ```-p``` 設定連進容器的連接埠 ```:```的前後為 **主機:container** ```-p 5432:5432```指的是將container expose的5432映射到電腦的port 5432 若原本電腦的port 5432已經被占用,可以將冒號(:)前方的改用其他的port 例如 ```-p 5433:5432``` 如此一來,連接postgresql的url會變成 ``` postgres://dbuser:dbpass@localhost:5433 ``` #### 前景/背景執行 ```-d```指的是```--detach```,用來指定這個container在背景執行,如此一來則不需要另開shell ```-d``` 相反的是 ```-i``` ,指的是```--interactive```,則會進入此container的shell #### 容量掛載 使用```-v```將本機的資料夾與容器內的資料夾同步 與```-p```相同的是冒號前方是本機,冒號後方是容器 如此一來停止容器後,資料還存在本機當中
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up