用户登录
用户注册

分享至

docker安装PostgreSQL

  • 作者: 凹凸欧巴
  • 来源: 51数据库
  • 2021-09-30

0 任务简介

docker安装PostgreSQL,在Ubuntu 16.04虚拟机中安装docker 使用docker安装PostgreSQL 完成端口映射使得外部机器可以访问虚拟机中的数据库

1 安装docker

这一部分比较简单,不过考虑到完整性,还是列出来吧。
我这次选择的是docker-ce,安装流程如下:


1.1 建立 repository

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL http://www.51sjk.com/Upload/Articles/1/0/279/279414_20210708083824145.jpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] http://www.51sjk.com/Upload/Articles/1/0/279/279414_20210708083824177.jpg $(lsb_release -cs) stable"

1.2 安装docker

sudo apt-get update
sudo apt-get install docker-ce

2 安装PostgreSQL

docker pull postgres:9.4

3 创建容器

docker的容器默认情况下只能由本地主机访问,即A主机上的容器不能被B主机访问,所以要做端口映射。

docker run --name postgres1 -e POSTGRES_PASSWORD=password -p 54321:5432 -d postgres:9.4 

解释:
run,创建并运行一个容器;
--name,指定创建的容器的名字;
-e POSTGRES_PASSWORD=password,设置环境变量,指定数据库的登录口令为password;
-p 54321:5432,端口映射将容器的5432端口映射到外部机器的54321端口;
-d postgres:9.4,指定使用postgres:9.4作为镜像。


3.1 验证结果

之后运行docker ps -a,结果和下表类似:

 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f6951e0c5c77 postgres:9.4 “docker-entrypoint…” 38 minutes ago Up 38 minutes 0.0.0.0:54321->5432/tcp postgres1

3.2 关键点

我自己安装的过程中遇到了不少的坑,我认为最重要的一点是docker命令中参数的顺序

例如端口映射的-p 54321:5432的位置如果过于靠后,则会导致映射失败。


4 连接数据库

之前的准备工作都已完成,下一步就是从外部访问数据库了。
这一步就很常规了:

psql -U postgres -h 192.168.100.172 -p 54321

注意
postgres镜像默认的用户名为postgres,
登陆口令为创建容器是指定的值。

软件
前端设计
程序设计
Java相关