前言:
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上的具体安装过程,这里就不啰嗦了,傻瓜式安装。