前言:
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上的具體安裝過程,這裏就不囉嗦了,傻瓜式安裝。