Like Share Discussion Bookmark Smile

J.J. Huang   2019-05-05   Docker   瀏覽次數:

Docker - 第十二章 | 安裝PostgreSQL

最近看了資料庫的今天的排名,詳情可以看這篇 DB-Engines 发布 8 月份全球数据库排名,Solr 排名上升 ,而這篇要來介紹的PostgreSQL。

搜尋 Image

Searh指令進化一下,只搜尋10顆星以上的。

1
docker search -f=stars=10 postgres

拉取 Image

1
docker pull postgres

查看 Image

1
docker images

執行 Image

使用volume

由於docker卷是持久性的,因此可以專門為此目的建立volume。

1
2
docker volume create --name postgresql-data
docker run -d -p 5432:5432 --name mypostgres --restart always -v postgresql-data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=1234 postgres
  • -d :後台執行 Container ,並返回ID
  • -p 5432:5432 :將 Container 的 5432 Port 映射到主機的 5432 Port (前面代表主機,後面代表容器)
  • -name mypostgres :將 Container 取名為 mypostgres
  • -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
  • -v postgresql-data:/var/lib/postgresql/data :使用剛建立的volume,postgresql-data 掛載到 Container 的 /var/lib/postgresql/data。
  • postgres :指定安裝的鏡像postgres

掛載主機目錄

這不可移植,因為它依賴於主機上具有正確權限的目錄。但是,在需要將此卷分配給某些特定底層存儲的某些情況下,它可能很有用。

1
2
cd /Users/morose/Documents/Temp/Docker/PostgreSQL
docker run -d -p 5432:5432 --name mypostgres --restart always -v $PWD/postgresql-data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=1234 postgres
  • -d :後台執行 Container ,並返回ID
  • -p 5432:5432 :將 Container 的 5432 Port 映射到主機的 5432 Port (前面代表主機,後面代表容器)
  • -name mypostgres :將 Container 取名為 mypostgres
  • -restart always :如果 container 遇到例外的情況被 stop 掉,例如是重新開機,docker 會試著重新啟動此 container
  • -v $PWD/postgresql-data-data:/var/lib/postgresql/data :將主機當前目錄下的 /postgresql-data 掛載到 Container 的 /var/lib/postgresql/data。
  • postgres :指定安裝的鏡像postgres

進入 Container

1
docker exec -it mypostgres bash
  • -i :即使沒有附加也保持STDIN 打開
  • -t :分配一個偽終端

資料庫測試

這邊直接使用工具做連線測試,指令的部分這邊就不再特別列出,因為我也不熟啊。哈。
這邊提供一個不錯的教學網站 PostgreSQL 正體中文使用手冊

恭喜你已經搭建了PostgreSQL Server,這邊只是簡單的使用Docker快速建置,當然有更多詳細參數設定或是指令等等,這邊就不特別列出,畢竟我也不熟,哈。


註:以上參考了
postgres
PostgreSQL Server 基本操作
使用Docker部署Confluence
用 Docker 玩轉 PostgreSQL