도커 컨테이너 CentOS에서 postgres 10.6을 설치하는 방법입니다.
# ==========================================
# 컨테이너 기동
# ==========================================
-p 옵션을 사용하여 호스트와 컨테이너의 포트를 연결해준다.
(SQL 클라이언트이자 데이터베이스 관리 도구인 pgadmin, dbeaver를 통해 접근이 가능하다.)
$ docker run -dit \
--name centos7.4_postgres \
--privileged \
-e container=docker \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-p 5432:5432 \
centos:latest \
/usr/sbin/init
# ==========================================
# Postgres 설치
# ==========================================
# CentOS 배포판 확인
아래 명령으로 postgresql 버전을 확인한다.
$ yum list | grep ^postgresql
# postgresql yum 저장소 업데이트
http://yum.postgresql.org/에 접속해서 버전 확인
https://download.postgresql.org/pub/repos/yum/에 접속해서 원하는 버전의 주소를 찾는다.
$ yum update
$ rpm -Uvh https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7.4-x86_64/pgdg-centos10-10-2.noarch.rpm
# postgresql 설치
$ yum install -y postgresql10.x86_64 postgresql10-server.x86_64
# 설치 패키지 확인
아래 명령을 실행해서 설치되었는지 확인한다.
$ rpm -qa | grep post
# 계정 확인
아래 명령을 통해 postgres 계정이 생성되었는지 확인한다.
$ cat /etc/passwd
# ==========================================
# 초기화, 기동, 접속, 종료
# ==========================================
# 초기화
아래 며령을 수행해서 postgresql을 초기화한다.
$ /usr/pgsql-10/bin/postgresql-10-setup initdb
# postgresql 계정 패스워드 설정
$ passwd postgres
# postgresql 기동
$ su - postgres
$ /usr/pgsql-10/bin/pg_ctl start
# postgresql 접속
$ -bash-4.2$ psql ---> password 필요 없음
psql (10.6)
Type "help" for help.
postgres=# select version();
PostgreSQL 10.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
# postgresql 종료
$ su - postgres
$ /usr/pgsql-10/bin/pg_ctl stop
# ==========================================
# 관리자 비밀번호 설정
# ==========================================
postgres=# \password postgres
Enter new password:
Enter it again:
# ==========================================
# 로컬 서버에서 암호를 이용한 접속으로 변경
# ==========================================
$ vi /var/lib/pgsql/10/data/pg_hba.conf
#local all all peer --> 암호 X
local all all md5 --> 암호 O
# ==========================================
# Remote에서 접근 가능하도록 설정
# ==========================================
$ vi /var/lib/pgsql/10/data/pg_hba.conf
# IPv4 local connections:
host all all 0.0.0.0/0 trust <-- 추가 (암호 X)
host all all 0.0.0.0/0 md5 <-- 추가 (암호 O)
$ vi /var/lib/pgsql/10/data/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*' # what IP address(es) to listen on;