Centos上docker部署postgres
阿新 • • 發佈:2020-10-23
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、連線測試
完