Docker Hub에서 Postgresql latest 이미지를 다운로드 받는다.
root@DESKTOP-GH94F8C:/mnt/c/Users/skkkm# docker pull postgres:latest
latest: Pulling from library/postgres
09f376ebb190: Pull complete
119215dfb3e3: Pull complete
e02bbc8c8252: Pull complete
061f31803c55: Pull complete
accd4903f49a: Pull complete
2016ff8e6e3a: Pull complete
088e651df7e9: Pull complete
ed155773e5e0: Pull complete
ffebb35d2904: Pull complete
293f0bec643a: Pull complete
1655a257a5b5: Pull complete
4ddba458499d: Pull complete
90e48ae03559: Pull complete
822c1a513e6a: Pull complete
Digest: sha256:1bf73ccae25238fa555100080042f0b2f9be08eb757e200fe6afc1fc413a1b3c
Status: Downloaded newer image for postgres:latest
docker.io/library/postgres:latest
Docker 이미지를 다운로드 받았으면 Container로 실행 시켜 본다.
아래 docker run command 인자의 의미는 다음과 같다.
-d, --detach | Run container in background and print container ID |
--name string | Assign a name to the container |
-e, --env | Set environment variables |
-d 옵션을 주어서 Container를 background로 실행되게 만든다.
-e 옵션을 주면 Container 실행시 환경변수를 넘겨 줄 수 있다. Postgresq DB를 특정 포트로 지정해서 실행시키고 싶으면 -e PGPORT=[portNum] 로 넘겨주면 전달한 Port로 DB Container를 띄우게 된다.
-p 7433:7433 은 Docker 외부 Port와 내부 Port를 연결해 주는 옵션으로 내, 외부 모드 7433으로 동일하게 쓰고 있음을 알 수 있다.
docker run -d --name PostgreSQL -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=1234 -e PGPORT=7433 -p 7433:7433 postgres:latest
b7af7d8cdbb3e94818b0f8f43baa236d28aa88eb7d9266a7bfcac78f9515e33b
Container를 실행 후 docker ps -a로 확인해 보면 정상적으로 Container가 실행되고 있음을 볼 수 있다.
root@DESKTOP-GH94F8C:/mnt/c/Users/skkkm# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
b7af7d8cdbb3 postgres:latest "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 5432/tcp, 0.0.0.0:7433->7433/tcp, :::7433->7433/tcp
DBeaver 툴 등에서 Connection을 연결해본다. 아래 등과 같이 설정을 만들고 접속을 시도 해본다.
연결이 성공되고 쿼리를 수행해 보면 결과가 나온다.
PostgreSql 서버 설정 바꾸기
docker 이미지에서 Postgresql DB의 conf 위치는 /var/lib/postgresql/data/postgresql.conf 이다. /var/lib/postgresql/data에서 편집기로 열기위해 vi를 해보면 command가 없다고 나온다.
root@DESKTOP-GH94F8C:/mnt/c/Users/skkkm# docker exec -it PostgreSQL /bin/bash
root@b7af7d8cdbb3:/#
root@b7af7d8cdbb3:/# cd /var/lib/postgresql/data/
root@b7af7d8cdbb3:/var/lib/postgresql/data# vi
bash: vi: command not found
apt-get update
apt-get install vim
vim 설치 후에 vi /var/lib/postgresql/data/postgresql.conf를 열고 테스트로 max_prepared_transactions 항목을 100으로 늘려본다.
저장하고 나와서 exit로 Container 내부 bash쉘에서 나온다. 그리고 docker container restart로 Postgresql DB를 재기동한다.
root@DESKTOP-GH94F8C:/mnt/c/Users/skkkm# docker container restart b7af7d8cdbb3
b7af7d8cdbb3
Container를 재기동하면 DB 도 같이 재기동 되어서 기동 후 Tool에서 PG_SETTINGS의 Max Prepared_transactions를 읽어보면 설정한 대로 100으로 나타냄을 볼 수 있다.
-- The End --
'Devops > Docker' 카테고리의 다른 글
[Docker] Docker Oracle 이미지 백업, 복원 (1) | 2024.12.04 |
---|---|
[Docker] 도커로 몽고db 설치하기 (1) | 2024.03.23 |
[Docker] Harbor 로컬 컨테이너 저장소 Push 하기 (0) | 2024.03.16 |
[Docker] Harbor 로컬 컨테이너 저장소 구축하기 (0) | 2024.02.14 |
[Synology Docker] Oracle 12c password expired 처리 (1) | 2023.12.11 |