Docker学习(8)搭建PostgreSql数据库服务器数据库脱离容器永久保存

搭建PostgreSql数据库服务器

知识点

  • 使用Docker镜像搭建PostgreSql数据库服务器

官网

Docker

PostgreSql

PostgreSQL: The world's most advanced open source database

版本控制策略

PostgreSQL: Versioning Policy

实战演习

# 找到适合您的PostgreSql版本
$ sudo docker pull postgres:9.6.16-alpine
# 启动PostgreSql数据库服务器 - webdb
$ sudo docker run --name webdb -p 5432:5432 -e POSTGRES_USER=dbuser -e POSTGRES_PASSWORD=12345678 -d postgres:9.6.16-alpine
# 数据库容器(服务)查看
$ sudo docker container ls
$ nmap 127.0.0.1
$ nvidia@nvidia-desktop:~$ nmap 127.0.0.1
  -bash: nmap: command not found
  
$ nvidia@nvidia-desktop:~$ sudo apt-get install nmap

$ nvidia@nvidia-desktop:~$ nmap 127.0.0.1

Starting Nmap 7.60 ( https://nmap.org ) at 2023-02-24 13:47 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00052s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
5432/tcp open  postgresql
9090/tcp open  zeus-admin

Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
$ sudo apt-get install postgresql-client-common 
$ 
# psql连接
$ psql -h localhost -U dbuser
$ nvidia@nvidia-desktop:~$ psql -h localhost -U dbuser
Error: You must install at least one postgresql-client-<version> package
nvidia@nvidia-desktop:~$ sudo psql -h localhost -U dbuser
Error: You must install at least one postgresql-client-<version> package
$ sudo apt -y install postgresql-client
Password for user dbuser:
dbuser=# select * from pg_tables;
dbuser=# \q

# 数据库服务停止
$ sudo docker stop webdb
$ nmap 127.0.0.1
$ sudo docker container ls
$ sudo docker container ls -a
# 数据库服务再开
$ sudo docker start webdb
# 进入数据库实例的bash
$ sudo docker exec -it webdb /bin/bash
bash-5.0# cd /var/lib/postgresql/data
bash-5.0# ls
bash-5.0# cat pg_hba.conf
bash-5.0# cat postgresql.conf
bash-5.0# exit

######################################
# 课题:数据库文件脱离Docker容器永久保存
######################################
# 建立专用的独立使用的卷(Volume)
$ sudo docker volume create --name v_webdb_data
$ sudo docker volume ls
$ sudo docker volume inspect v_webdb_data
# 清理旧的webdb实例
$ sudo docker stop webdb
$ sudo docker container rm webdb
$ sudo docker container ls -a
# 建立新的webdb实例
$ sudo docker run --name webdb -v v_webdb_data:/var/lib/postgresql/data -p 5432:5432 -e POSTGRES_USER=dbuser -e POSTGRES_PASSWORD=12345678 -d postgres:9.6.16-alpine
# 绑定卷的查看
$ sudo docker inspect webdb
...
        "Mounts": [
            {
                "Type": "volume",
                "Name": "v_webdb_data",
                "Source": "/var/lib/docker/volumes/v_webdb_data/_data",
                "Destination": "/var/lib/postgresql/data",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }
        ],
...


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无证驾驶梁嗖嗖

让我们解决Jetson使用问题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值