本文可以對(duì)標(biāo) SonarQube (1) 基本環(huán)境搭建 中的 PostgreSQL
部分堪嫂。
拉取鏡像
docker pull postgres:9.6
這里出現(xiàn)一個(gè)烏龍长赞,在拉取鏡像時(shí)輸成 postgre
碎绎,導(dǎo)致拉取一直失敗,報(bào)“Error response from daemon: pull access denied for postgre, repository does not exist or may require 'docker login'”邻吞,查了很多回答才知道是自己輸錯(cuò)鏡像名氛悬。
數(shù)據(jù)持久化
創(chuàng)建本地卷
docker volume create pgdata
啟動(dòng)容器
啟動(dòng)時(shí)克锣,需要將剛上個(gè)步驟創(chuàng)建的卷 pgdata
掛載到容器的 /var/lib/postgresql/data
目錄
docker run -it --rm -v pgdata:/var/lib/postgresql/data -p 5432:5432 postgres:9.6
進(jìn)入容器創(chuàng)建數(shù)據(jù)
搭建 postgres
容器環(huán)境的初衷是為了搭建 SonarQube
,又不想破壞宿主機(jī)環(huán)境俄占。因此以創(chuàng)建 sonar
相關(guān)用戶與數(shù)據(jù)庫(kù)為例編寫(xiě)此節(jié):
根據(jù)上一章的“啟動(dòng)容器”,啟動(dòng)容器后淆衷,查看該容器 ID:
docker ps
假設(shè)該容器 ID 為 123 缸榄,新開(kāi)一個(gè) Terminal 進(jìn)入容器
docker exec -it 123 /bin/bash
創(chuàng)建sonar用戶
切換到postgres用戶
su postgres
創(chuàng)建sonar用戶
createuser -P -s -e sonar
創(chuàng)建sonar數(shù)據(jù)庫(kù)
連接數(shù)據(jù)庫(kù)
psql
創(chuàng)建sonar數(shù)據(jù)庫(kù)
create database sonar owner=sonar;
查看創(chuàng)建后的數(shù)據(jù)庫(kù)
\l
至此,sonar
用戶與數(shù)據(jù)庫(kù)均已創(chuàng)建成功祝拯,并且數(shù)據(jù)庫(kù)中的數(shù)據(jù)持久化在宿主機(jī)中甚带,方便下次訪問(wèn)及做備份。