[๊ฐ€์ƒํ™” - Container] Docker๋ฅผ ์ด์šฉํ•œ PostgreSQL 15 ์„ค์น˜

2023. 7. 8. 14:54ใ†System ์ž‘์—…์‹ค/DevOps

728x90
๋ฐ˜์‘ํ˜•

 




 

PostgreSQL 9.4 ๊ณต์‹ ๊ฐ€์ด๋“œ Vol.1: ์„œ๋ฒ„ ๊ด€๋ฆฌ

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

 

๐Ÿš€ Docker๋ฅผ ์ด์šฉํ•œ PostgreSQL 15 ์„ค์น˜

    ๐Ÿ”ฝ ๊ฐœ์š”

        ๐Ÿ“ฆ ์†Œ๊ฐœ

์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ๊ธ€์—์„œ ์„ค์น˜ํ–ˆ๋˜ SonarQube์˜ ์ •๋ณด์™€ Data๋ฅผ ์ €์žฅํ•  Data Base๋ฅผ ๊ตฌ์ถ•ํ•ด ์ฃผ๋ ค๊ณ  ํ•ด์š”.

Data Base๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ด์œ ๋Š” ์œ„์™€ ๊ฐ™์ด ์†Œ๋‚˜ํ๋ธŒ๊ฐ€ ๋™์ž‘ํ•˜๋ฉด์„œ ๋ถ„์„ ์ž๋ฃŒ, ์„ค์ • ๋“ฑ์„ Data Base์— ์ €์žฅ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ด์—์š”.

 

์ฃผ๋‹ˆ๊ฐ€ ์ •์  ์ฝ”๋“œ ๋ถ„์„์šฉ์œผ๋กœ ์„ค์น˜ํ•œ ์†Œ๋‚˜ํ๋ธŒ์˜ ๋ฒ„์ „์€ 9.8 ๋ฒ„์ „์ด์—์š”.

์†Œ๋‚˜ํ๋ธŒ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ์†Œ๋‚˜ํ๋ธŒ๋Š” ์ด 3๊ฐ€์ง€์˜ DBMS๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด์š”.

โˆ™ PostgresSQL
โˆ™ MSSQL
โˆ™ Oracle SQL

์ฃผ๋‹ˆ๋Š” ์ด ์ค‘ ๋ฌด๋ฃŒ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” PostgresSQL์„ ์„ค์น˜ํ•  ๊ฒƒ์ธ๋ฐ, ๊ณต์‹ ๋ฌธ์„œ์—๋Š” 11~15๋ฒ„์ „ ๊นŒ์ง€ ์ง€์›ํ•œ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์–ด์š”. ๊ทธ๋ž˜์„œ PostgreSQL 15 Version์„ Docker์„ ์ด์šฉํ•ด์„œ ์„ค์น˜ํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

 

    ๐Ÿ”ฝ PostgreSQL 15

        ๐Ÿ“ฆ ์„ค์น˜ํ•˜๊ธฐ

์ถœ์ฒ˜: https://hub.docker.com/_/postgres/tags?page=2

 


์ฃผ๋‹ˆ๋Š” ์œ„์˜ PostgresSQL 15.2 Version์„ ์„ค์น˜ํ•˜๋„๋ก ํ•ด ๋ณผ๊ฒŒ์š”.


docker pull postgres:15.2

 


์ตœ์ดˆ Image๋ฅผ ๋‚ด๋ ค ๋ฐ›๊ธฐ ์œ„ํ•ด ์œ„์™€ ๊ฐ™์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ์–ด์š”.


docker images

 


Docker Image๊ฐ€ ์ž˜ ๋‚ด๋ ค ๋ฐ›์•„์ง„๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.


์ฃผ๋‹ˆ๋Š” ์ด ์ „๊ณผ ๊ฐ™์ด Shell Script๋ฅผ ์ด์šฉํ•ด์„œ Docker ๊ธฐ๋™ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.

vim {Shell Script File Name}.sh

728x90

 

์ฃผ๋‹ˆ๋Š” ์œ„์™€ ๊ฐ™์ด Shell Script๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ์–ด์š”.

์—ฌ๊ธฐ์„œ --restart=unless-stopped๋Š” Docker Host OS๊ฐ€ Booting ๋˜๋ฉด ์ž๋™์œผ๋กœ ์žฌ์‹œ์ž‘ํ•˜๋ผ๋Š” Option ๊ฐ’์ด์—์š”.

๐Ÿ’ก Docker ์ž๋™ ๊ธฐ๋™ ๊ด€๋ จ Option
1. --restart=" " : Container ๋‚ด๋ถ€ Process ์ข…๋ฃŒ ์‹œ ์žฌ ์‹œ์ž‘ ์ •์ฑ… ์„ค์ •
โˆ™ no : Process๊ฐ€ ์ข…๋ฃŒ๋˜๋”๋ผ๋„ Container๋ฅผ ์žฌ์‹œ์ž‘ ํ•˜์ง€ ์•Š์Œ
โˆ™ on-failue : Process exit code๊ฐ€ 0๊ฐ€ ์•„๋‹ ๋•Œ๋งŒ ์žฌ ์‹œ์ž‘ (๋ฏธ ์ง€์ •์‹œ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด๋„ ๊ณ„์† Container ์žฌ์‹œ์ž‘ ์‹œ๋„)
โˆ™ always : Process exit code์™€ ๊ด€๊ณ„์—†์ด ์–ธ์ œ๋‚˜ ์žฌ์‹œ์ž‘ ์‹œ๋„
โˆ™ unless-stopped : Booting ์‹œ ์ž๋™์œผ๋กœ Container ์žฌ์‹œ์ž‘

 

chmod -R {์„ค์ •ํ•  ๊ถŒํ•œ} {File Name}

 


๊ทธ๋Ÿฐ ๋’ค ๋งŒ๋“ค์–ด์ง„ Shell Script File ๊ถŒํ•œ์„ ์„ค์ •ํ•ด ์ฃผ์—ˆ์–ด์š”.



์œ„์™€ ๊ฐ™์ด Docker Container๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๊ธฐ๋™๋œ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์–ด์š”.

 

 

 

        ๐Ÿ“ฆ ์ ‘์†ํ•˜๊ธฐ

PostgresSQL์ด ์ •์ƒ์ ์œผ๋กœ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ•œ๋ฒˆ ํ™•์ธํ•ด ๋ณผ๊ฒŒ์š”.

docker exec -it {Docker Container ID} /bin/bash

 

 


์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ PostgresSQL Conainter์— ์ ‘์†ํ•ด ์ฃผ์—ˆ์–ด์š”.


psql -U postgres

 


์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด PostgresSQL์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ์–ด์š”.



select datname from pg_database;

 


์œ„ SQL๋ฌธ์œผ๋กœ ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ์ „์ฒด DB ์ด๋ฆ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

SELECT datname FROM pg_database WHERE datistemplate = false;

 


์œ„ SQL๋ฌธ์œผ๋กœ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•œ DB ์ด๋ฆ„๋งŒ ์ถœ๋ ฅ๋˜๊ฒŒ ํ•˜๋ผ๋Š” ๋ช…๋ น์ด์—์š”.

 

 



SELECT nspname FROM pg_catalog.pg_namespace;

๋ฐ˜์‘ํ˜•


์œ„ SQL๋ฌธ์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ Data Base์˜ Schema๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

 

 

create user {๊ณ„์ •๋ช…} with password '{๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ}'

 


postgresSQL์€ ์œ„์™€ ๊ฐ™์ด ๊ณ„์ •์„ ์ƒ์„ฑํ•ด ์ค„ ์ˆ˜ ์žˆ์–ด์š”.


create database {DB Name} onwer {ํ•ด๋‹น DB ์†Œ์œ  ๊ณ„์ •๋ช…}

 


๊ทธ๋ฆฌ๊ณ  ์œ„์™€ ๊ฐ™์ด DB๋ฅผ ๋งŒ๋“ค๊ณ , sonaradmin ๊ณ„์ •์„ ์†Œ์œ ์ฃผ๋กœ ํ•ด ์ฃผ์—ˆ์–ด์š”.


alter role {๊ณ„์ •๋ช…} with ์„ค์ •ํ•  ๊ถŒํ•œ;

 


์œ„์™€ ๊ฐ™์ด sonaradmin ๊ณ„์ •์— DB๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ฃผ์—ˆ์–ด์š”.


grant all privileges on database sonarqube to sonaradmin;

 


sonaradmin ๊ณ„์ •์— sonarqube DB์— ๋ชจ๋“  ๊ถŒํ•œ์„ ์ฃผ์—ˆ์–ด์š”.








        ๐Ÿ“ฆ GUI ๋„๊ตฌ ์—ฐ๋™ํ•˜๊ธฐ

์ด๋ฒˆ์—๋Š” DBMS๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ๋ณด๋‹ค ํŽธ๋ฆฌํ•œ GUI ๋„๊ตฌ์™€ ์—ฐ๋™ ํ•ด ๋ณด๋„๋ก ํ• ๊ฒŒ์š”.
์ฃผ๋‹ˆ๋Š” Jet Brain์˜ DataGrip์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์š”.

 




์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ์ž˜ ์—ฐ๊ฒฐ ๋˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

 

๋‹ค์Œ ๊ธ€์—์„  ์†Œ๋‚˜ํ๋ธŒ์™€ PostgresSQL ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ธ€์„ ๋‚จ๊ฒจ ๋ณด๋„๋ก ํ• ๊ฒŒ์š”.




 

 

 

PostgreSQL 9.4 ๊ณต์‹ ๊ฐ€์ด๋“œ Vol.1: ์„œ๋ฒ„ ๊ด€๋ฆฌ

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•