===============
== 白菜林 ==
===============
一个勤奋的代码搬运工!

Docker 运行 postgreSQL

Docker postgres

简单步骤

  1. 安装docker,可参考 安装docker及简单的使用 或 百度解决;

  2. 拉取postgreSQL的docker镜像文件:

    docker pull postgres
  1. 创建 docker volume,名字为“dv_pgdata"(其实可以省略手动创建,直接跑下一步,docker也会自动创建的):
    docker volume create dv_pgdata
  1. 启动容器,用-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
  1. 这时候查看已存在的docker volume:
docker volume ls
  1. 查看volume信息:
cn2d6@navxin-desktop:~$ docker inspect dv_pgdata
  1. 在宿主机,也可以直接查看volume里的内容:
cn2d6@navxin-desktop:~$ cd /var/lib/docker/volumes/dv_pgdata/_data
cn2d6@navxin-desktop:~$ ll
  1. 查看postgresql:
cn2d6@navxin-desktop:~$docker exec -it 618 bash
root@618f1a4128ee:/# psql -U postgres
  1. 更多的时候,我们希望能用图形界面来管理和操作数据库,可以部署pgadmin工具(例如下面),然后在浏览器中访问宿主机的5080端口,便能打开pgadmin。
docker pull dpage/pgadmin4
docker run --name pgadmin -p 5080:80 \
    -e 'PGADMIN_DEFAULT_EMAIL=hi@nav.xin' \
    -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: "hi@nav.xin"
        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路由地址。

更多参考:

安装docker及简单的使用 postgres dpage/pgadmin4