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、連接測試

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM