簡單步驟#
-
安裝 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 路由地址。