前言:
docker真是一個好東西,是碼農開發調試的神器,以前還要自己配置開發、測試環境,安裝過程繁瑣,容易出錯,耗時很多,用docker基本能夠在5分鐘搞定,而且一次配置,每個環境都能夠無差别部署,省時省力。
最近公司的項目基本設計要求資料庫每張表的每行記錄的大小需要突破65535位元組,經過研究,mysql(mysql限制每個表的最多存儲4096列,并且每一行資料的大小不能超過65535位元組)被pass 掉,選用postgresql,完美滿足這個技術需求。
現在将在mac電腦上使用docker安裝postgresql詳細的每一步記錄下來:
1.mac上docker環境安裝:
(1)macOS 我們可以使用 Homebrew 來安裝 Docker。Homebrew 的 Cask 已經支援 Docker for Mac,是以可以很友善的使用 Homebrew Cask 來進行安裝:
brew cask install docker
(2)如果需要手動下載下傳,請點選以下連結下載下傳 Stable 或 Edge 版本的 Docker for Mac。
Stable版本下載下傳位址:https://download.docker.com/mac/stable/Docker.dmg
Edge版本下載下傳位址:https://download.docker.com/mac/edge/Docker.dmg
dmg安裝過程基本是傻瓜式的,就不說了。
安裝成功,docker啟動後,在終端中執行 :
1.$ docker --version
Docker version 17.09.1-ce, build 19e2cf6
檢視docker版本。
在終端中執行:
~ docker info
Containers: 6
Running: 1
Paused: 0
Stopped: 5
Images: 4
Server Version: 18.09.2
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
......
檢視docker資訊。
如果覺得還有docker安裝問題,請參考:https://www.runoob.com/docker/macos-docker-install.html
下面記錄在docker上安裝postgresql過程:
1.安裝PostgreSQL:
docker pull postgres:9.4
其中的9.4是pg資料庫的版本号,因為公司其餘項目使用的pg9.4版本,為了統一相容,是以我這裡也使用的是9.4版本,可以根據個人喜好,或者項目需求選擇響應的版本。
2.docker的容器預設情況下隻能由本地主機通路,即A主機上的容器不能被B主機通路,是以要做端口映射:
docker run --name postgres1 -e POSTGRES_PASSWORD=postgres -p 54321:5432 -d postgres:9.4
參數解釋:
(1)run,建立并運作一個容器;
(2)--name,指定建立的容器的名字,這裡是postgres1;
(3)-e POSTGRES_PASSWORD=postgres,設定環境變量,指定資料庫的登入密碼為postgres(pg資料庫預設使用者postgres的密碼為postgres);
(4)-p 54321:5432,端口映射将容器的5432端口映射到本機實體機器的54321端口;
(5)-d postgres:9.4,指定使用postgres:9.4作為鏡像;
3.驗證結果
在終端中運作:
docker ps -a
結果:
~ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa68e40d3e8f postgres:9.4 "docker-entrypoint.s…" 4 hours ago Up 4 hours 0.0.0.0:54321->5432/tcp postgres1
411fc1432207 kalilinux/kali-linux-docker "/bin/bash" 5 months ago Exited (127) 5 months ago vigorous_tereshkova
a62d23d32a6c encircles/easyswoole3:latest "php /var/www/code/e…" 6 months ago Exited (0) 6 months ago containerName
faa85aa15633 hello-world "/hello" 7 months ago Exited (0) 7 months ago quirky_austin
590ecd9e36bf hello-world "/hello" 7 months ago Exited (0) 7 months ago awesome_liskov
f7e5cd7f9503 hello-world "/hello" 15 months ago Exited (0) 15 months ago heuristic_easley
~
4.連接配接資料庫:
psql連結資料庫:
psql -U postgres -h 127.0.0.1 -p 54321
注意:
postgres鏡像預設的使用者名為postgres, 我們設定的postgres使用者的密碼也是postgres。
5.實用用戶端:
pgAdmin4 、navicat for postgresql 等用戶端操作docker 中的pg資料庫更友善,pgAdmin4 、navicat for postgresql 在mac上的具體安裝過程,這裡就不啰嗦了,傻瓜式安裝。