도커를 사용하려면 먼저 내 컴퓨터에 도커 프로그램을 설치해야 합니다.
Mac OS와 Windows 사용자분들은 인터넷 브라우저를 열고
도커 데스크탑
(Docker Desktop) 공식 홈페이지에 접속해 주시기 바랍니다.
도커 데스크탑 다운로드 페이지↗에서 자신의 운영체제에 맞는 설치 파일을 내려받아 설치를 진행해 주시면 됩니다.
홈페이지 화면에 보이는 커다란 다운로드 버튼을 눌러 설치 파일을 내려받은 뒤 평소 프로그램을 설치하듯 다음 버튼을 눌러 설치를 완료해 주시면 됩니다.
Linux 사용자분들은 터미널에서 패키지 관리자를 이용해 도커 엔진과 도커 컴포즈를 각각 설치해 주셔야 합니다.
설치가 끝났다면 도커 데스크탑 프로그램을 더블클릭하여 실행해 둡니다.
실행 후 터미널에서 docker --version 명령어를 입력하여 도커가 정상적으로 설치되고 실행되고 있는지 확인해 보시기 바랍니다.
만약, zsh: command not found: docker 라는 메시지가 나타난다면 시스템 경로에 도커가 제대로 추가되지 않은 것입니다.
터미널 명령어
vi ~/.zshrc # 파일이 열리면 아래의 줄을 추가해 줍니다. # export PATH="/Applications/Docker.app/Contents/Resources/bin:$PATH" # 저장 후 파일을 닫고 아래의 명령어로 변경 사항을 적용합니다.source ~/.zshrc # 다시 도커 버전을 확인해 봅니다.docker --version
이제 도커에게 포스트그레스큐엘 데이터베이스와 엔에잇엔 시스템을 어떻게 연결할지 알려주는 설계도를 그릴 차례입니다.
현재 폴더 안에
docker-compose.yml
이라는 이름의 텍스트 파일을 새로 만들어 주시기 바랍니다.
메모장이나 비주얼 스튜디오 코드 같은 편집기를 열어 방금 만든 빈 파일에 아래의 내용을 그대로 복사해서 붙여넣고 저장해 줍니다.
docker-compose.yml
# 도커 컴포즈 파일의 버전을 명시합니다.version: '3.8' # 우리가 실행할 두 개의 창고(서비스)를 정의합니다.services: # 첫 번째 서비스: 포스트그레스큐엘 데이터베이스 postgres: image: postgres:16 restart: always environment: # 데이터베이스 접속에 필요한 비밀번호와 사용자 이름을 설정합니다. - POSTGRES_USER=n8n_db_user - POSTGRES_PASSWORD=n8n_db_password - POSTGRES_DB=n8n_database volumes: # 데이터베이스의 정보가 컴퓨터에 영구적으로 저장되도록 다리를 연결합니다. - db_data:/var/lib/postgresql/data # 두 번째 서비스: 엔에잇엔 자동화 플랫폼 n8n: image: docker.n8n.io/n8nio/n8n:latest restart: always ports: - "5678:5678" environment: # 시스템이 한국 시간을 정확히 인식하도록 설정합니다. - GENERIC_TIMEZONE=Asia/Seoul - TZ=Asia/Seoul - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - N8N_RUNNERS_ENABLED=true # 방금 위에서 만든 데이터베이스와 연결해 주는 핵심 설정입니다. - DB_TYPE=postgresdb - DB_POSTGRESDB_DATABASE=n8n_database - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_USER=n8n_db_user - DB_POSTGRESDB_SCHEMA=public - DB_POSTGRESDB_PASSWORD=n8n_db_password depends_on: # 데이터베이스가 먼저 켜진 후에 시스템이 켜지도록 순서를 정해줍니다. - postgres volumes: - n8n_data:/home/node/.n8n # 데이터를 영구적으로 보존하기 위한 가상의 저장 공간(볼륨)을 선언합니다.volumes: db_data: n8n_data:
위 코드에서 주의 깊게 보실 부분은
환경 변수
(environment) 영역입니다.
엔에잇엔 시스템이 데이터베이스에 접속하기 위해 필요한 아이디와 비밀번호를 꼼꼼하게 적어두어 두 시스템이 안전하게 소통할 수 있도록 만들어 주었습니다.