环境:
Centos7.x + docker1.13.1 + postgres12
本文使用的是在镜像仓库直接pull的方式,非Dockfile的方式。
Postgresql的Dockerfile参考:https://github.com/docker-library/postgres/blob/master/12/alpine/Dockerfile
常用命令
docker命令大全:https://www.runoob.com/docker/docker-command-manual.html
请注意区分“镜像”和“容器”的。先创建镜像,然后通过镜像创建容器,一个镜像可以有多个容器。
镜像常用命令
命令 |
作用 |
docker image list |
查询镜像列表 |
docker rmi -f 镜像ID |
通过镜像ID删除 |
容器常用命令
docker run |
容器运行 |
docker start/stop/restart |
启动/停止/重启 |
docker rm 容器ID |
删除容器 |
docker ps |
容器查询,-a -q |
docker exec -it 容器ID /bin/sh |
进入容器命令行 |
docker volume create xxx |
创建容器共享数据卷 |
docker volume inspect xxx |
容器共享数据卷落盘 |
1.查询docker镜像
# docker search postgres
2.下载docker镜像
# docker pull postgres:12.7
下载后,镜像查询,# docker image list
3.创建本地卷
数据卷可以再容器之间共享
docker volume create PGDATA
docker volume inspect PGDATA
{
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/PGDATA/_data",
"Name": "PGDATA",
"Options": {},
"Scope": "local"
}
]
Mountpoint属性路径就是将来容器的data目录。
4.运行容器
docker run --name postgres12 -e POSTGRES_PASSWORD=postgres -p 5433:5432 -v PGDATA:/var/lib/postgresql/data -d postgres:12.7
run:创建并运行一个容器
--name:容器名称
-e POSTGRES_PASSWORD:数据库密码
-p:映射端口。前面端口是对外端口,后面端口是容器内使用端口。
-v:PGDATA挂载到容器的/var/lib/postgresql/data (因为pg的Dockerfile声明的目录)
-d postgres:12.7:使用image镜像的名称
返回一串字符,就是启动的容器ID。
容器ID:b8e40f13e2f3
镜像名称:postgres:12.7
对外暴露端口:5433
容器名称:postgres12
pg数据库默认密码:postgres
5.查看日志
# docker logs b8e40f13e2f3
[root@sougou opt]# docker logs b8e40f13e2f3
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
...
2023-01-31 07:29:59.706 UTC [1] LOG: starting PostgreSQL 12.7 (Debian 12.7-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
2023-01-31 07:29:59.707 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
2023-01-31 07:29:59.707 UTC [1] LOG: listening on IPv6 address "::", port 5432
2023-01-31 07:29:59.713 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-01-31 07:29:59.730 UTC [63] LOG: database system was shut down at 2023-01-31 07:29:59 UTC
2023-01-31 07:29:59.734 UTC [1] LOG: database system is ready to accept connections
6.进入容器使用psql
# docker exec -it b8e40f13e2f3 /bin/sh文章来源:https://www.toymoban.com/news/detail-745008.html
root@sougou opt]# docker exec -it b8e40f13e2f3 /bin/sh
# psql -U postgres -p 5432
psql (12.7 (Debian 12.7-1.pgdg100+1))
Type "help" for help.
postgres=# select version();
version
------------------------------------------------------------------------------------------------------------------
PostgreSQL 12.7 (Debian 12.7-1.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
(1 row)
# exit
7.使用数据库管理工具连接
到此结束。文章来源地址https://www.toymoban.com/news/detail-745008.html
到了这里,关于Docker安装部署Postgresql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!