zoukankan      html  css  js  c++  java
  • Centos上docker部署postgres

    docker上快速部署Postgresql数据库,可以参考docker-postgres的官方解决方案 https://hub.docker.com/_/postgres/ 

    核心命令

    docker run --name yourappname -e POSTGRES_PASSWORD=xxx -e POSTGRES_USER=xxx -v ./data:/var/lib/postgresql/data/pgdata -d -p xxxx:5432 postgres

    命令执行步骤

    第一步:在任意机子上建立一个镜像,指定数据卷位置,并将其挂载到虚拟机上

    第二步:按照你指定的端口访问数据库,做数据初始化。包括建表和插入初始数据。

    第三步:备份数据卷。也就是上面的./data目录。

    第四步,将这个数据卷放到你的服务器上

    第五步和第一步一样。但是此时,你的数据卷里面已经有之前保存的内容了。

     1、在linux中创建目录

    [root@bb software]# mkdir -p dev-postgres/data
    [root@bb software]# cd dev-postgres/data
    [root@bb dev-postgres]# pwd
    /software/dev-postgres/data
    [root@bb dev-postgres]# 

    2、命令

    docker run --name my-postgres -e POSTGRES_PASSWORD=xxxxxx -e POSTGRES_USER=postgres -v /software/dev-postgres/data:/home/data/ -p 15555:5432 -d postgres
    -it -d 这两个参数一般同时使用,保证 container 以交互的方式在后台运行。
    --rm 这个参数是指在 container 停止时自动将 container 删除。
    --name 你在使用 docker ps 命令时看到的 container 的名字。
    -e POSTGRES_USER=dbuser 这个是设置 container 中的环境变量用的参数,指的是设计数据库用户为 dbuser 。之后登录数据库时就是使用这个用户名。
    -e POSTGRES_PASSWORD=password 同上,也是设置 container 中的环境变量,这个是设置你登录数据库的密码,这里设置的密码为"password"-e POSTGRES_DB=testdb 同上,初始化一个新的数据库,其名字为 testdb。
    -p 5432:5432 这个是将主机的端口与 container 暴露的端口进行映射。其格式为 -p 主机端口: container 端口。即 : 前为主机端口,后为 container 端口。
    -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data 挂载目录。将容器中的 /var/lib/postgresql/data 目录挂载至我们刚才新建的磁盘上的 $HOME/docker/volumes/postgres ,以便数据的持久化
    postgres 为下载下来的 image 的名字。如果你的主机上没有相应的 image ,则 docker 会自动从 dockerhub 活着你设置的源上下载相应的 image。

    3、进入容器验证

     docker exec -ti my-postgres /bin/bash
    root@b63cf7c32fb7:/bin# psql -U postgres
    psql (13.0 (Debian 13.0-1.pgdg100+1))
    Type "help" for help.
    
    postgres=# l
                                     List of databases
       Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges   
    -----------+----------+----------+------------+------------+-----------------------
     postgres  | postgres | UTF8     | en_US.utf8 | en_US.utf8 | 
     template0 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
               |          |          |            |            | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.utf8 | en_US.utf8 | =c/postgres          +
               |          |          |            |            | postgres=CTc/postgres
    (3 rows)
    
    postgres=# 

    4、连接测试

  • 相关阅读:
    GridView“gv_Info”激发了未处理的事件“RowEditing” “RowEditing”
    VS aspx页面在 设计视图 状态时 才可选用 工具 菜单下的 生成本地资源
    愿能与诸位关心的人及时保持互联
    [转]NOD32 與 無法將工作階段狀態要求送至工作階段狀態伺服器 NOD32与asp.net 状态服务
    [转]JavaScript:只能输入数字(IE、FF)
    勿以恶小而为之>致 被烟所包的程序员
    婚姻 一辈子的幸福厮守 请不要多拿彩礼和父母说事
    [文摘20090601]美国和中国老师讲灰姑娘的故事(差距啊~体现得淋漓尽致)
    多语言开发 之 通过基页类及Session 动态响应用户对语言的选择
    javascript的拖放(第1部分)
  • 原文地址:https://www.cnblogs.com/xuchen0117/p/13863509.html
Copyright © 2011-2022 走看看