前言#
没有
可以去看下我后面写的简单入门文章:
docker#
docker是啥我就不多说了:Docker: Accelerated, Containerized Application Development
postgresql#
这个是啥我也不多说了:PostgreSQL: The world's most advanced open source database
安装#
数据存放位置#
cd /usr/local
mkdir docker
mkdir docker/pgdata这个pgdata文件夹就是存放持久化数据的位置
或者手动创建本地的数据卷,让docker指向这个数据卷
docker volume create pgdata这个是本地和docker共享的,可以保证数据持久。
然后我们可以看下存储的位置
docker inspect pgdata
这个/var/lib/docker/volumes/pgdata/_data就是持久化的位置
但实际上不用也是可以的
拉取postgres#
docker pull postgres:latest 直接拉最新版本的
然后看下镜像
docker images
如果你想拉别的版本,那么你可以使用docker search postgres来找到你想要的版本。

然后给这个镜像创建容器
创建容器#
先是指向特定文件夹的
docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=dirtydan -v /usr/local/docker/pgdata:/var/lib/postgresql/data -d postgres然后来是指向特定数据卷的
docker run -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=dirtydan -v pgdata:/var/lib/postgresql/data -d postgres-p:暴露出来的端口,可以通过该端口访问数据库-e:参数POSTGRES_PASSWORD:你数据库的登录密码-v:挂载的目标,我们把持久化的目录挂载到容器里的数据存储文件夹,这样即使是容器被删除之后数据也不会丢失了。--name:容器的名字-d:指定创建容器的镜像
然后我们docker -ps -a可以看下创建的容器

进入容器#
lib# docker exec -it postgres /bin/bash
psql -U postgres
\l
远程连接#
我这里直接使用HeidiSQL[1]来连接了。当然,如果你是云机子,你需要先在防火墙那里添加5432端口的白名单。

hedisql不会直接展示数据库,而是schema。不过这不影响,我们创建一个blog的数据库,然后退出重新进,在管理器那里选择blog就行

然后建表


这样就行了
当然,你也可以删除下容器然后重新创建容器(注意指向之前存放数据的位置),看数据是否还在。
参考#
编辑于 2023-12-15 14:07・IP 属地广东
