Docker 运行 postgreSQL
Docker postgres简单步骤
安装docker,可参考 安装docker及简单的使用 或 百度解决;
拉取postgreSQL的docker镜像文件:
docker pull postgres
- 创建 docker volume,名字为“dv_pgdata"(其实可以省略手动创建,直接跑下一步,docker也会自动创建的):
docker volume create dv_pgdata
- 启动容器,用-v来指定把postgres的数据目录映射到上面创建的dv_pgdata里面:
docker run --name my_postgres -v dv_pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=xxxxxx -p 5432:5432 -d postgres
- 这时候查看已存在的docker volume:
docker volume ls
- 查看volume信息:
cn2d6@navxin-desktop:~$ docker inspect dv_pgdata
- 在宿主机,也可以直接查看volume里的内容:
cn2d6@navxin-desktop:~$ cd /var/lib/docker/volumes/dv_pgdata/_data
cn2d6@navxin-desktop:~$ ll
- 查看postgresql:
cn2d6@navxin-desktop:~$docker exec -it 618 bash
root@618f1a4128ee:/# psql -U postgres -d postgres -p 5432 -h 127.0.0.1
- 更多的时候,我们希望能用图形界面来管理和操作数据库,可以部署pgadmin工具(例如下面),然后在浏览器中访问宿主机的5080端口,便能打开pgadmin。
docker pull dpage/pgadmin4
docker run --name pgadmin -p 5080:80 \
-e '[email protected]' \
-e 'PGADMIN_DEFAULT_PASSWORD=xxxxxx' \
-e 'PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True' \
-e 'PGADMIN_CONFIG_LOGIN_BANNER="Authorised users only!"' \
-e 'PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10' \
-d dpage/pgadmin4
用docker-compose部署postgresql和pgAdmin4
准备步骤
安装docker-compose
apt install docker-compose
确定已经pull好postgres和pgAdmin4镜像,若未完成:
docker pull postgres
docker pull dpage/pgadmin4
配置内容
然后在任意目录下新建文件docker-compose.yml:
touch ./docker-compose.yml
内容如下:
# Use postgres/example user/password credentials
# https://hub.docker.com/_/postgres?tab=description
# 在当前目录下运行:sudo docker-compose up -d
# 若需停止运行,在当前目录运行:sudo docker-compose down
# docker路由地址查看: sudo docker inspect postgres_baicai
# sudo docker kill $(sudo docker ps -aq)
# sudo docker rm $(sudo docker ps -aq)
version: '3.1'
services:
db:
image: postgres
restart: always
privileged: true
container_name: postgres_baicai
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: 你的密码
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- /navxin/kn1/baicai_docker/baicai_postgres/pg_data:/var/lib/postgresql/data
# - pgdata:/var/lib/postgresql/data
pgadmin4:
image: dpage/pgadmin4
restart: always
container_name: pgadmin_baicai
ports:
- 5080:80
environment:
PGADMIN_DEFAULT_EMAIL: "[email protected]"
PGADMIN_DEFAULT_PASSWORD: 你的密码
# volumes:
# pgdata:
部署
在当前目录下运行:
docker-compose up -d
若需停止运行,在当前目录运行:
docker-compose down
连接步骤
打开浏览器,输入localhost:5080,登录pgAdmin4之后,点击添加新服务器,特别注意,在连接地址IP里应该填写docker路由地址,端口填写5432。 docker路由地址查看方法
docker inspect postgres_baicai
在输出内容中找到Gateway,对应的地址即为docker路由地址。