우분투 데스크탑에 고스트 블로그 도커 개발환경 만들기

안녕하세요! 오늘은 우분투 데스크탑에 도커(Docker)를 설치하고, 이를 활용해 서버의 고스트 블로그를 복제하여, 고스트 블로그 개발환경을 만들려고 합니다.
제가 도커를 설치하려는 이유는 아주 분명해요.
- 서버에서 운영 중인 고스트 블로그의 자료를 복제해 동일한 환경을 내 컴퓨터에 만들어 작업하려고 해요.
- MySQL 8 버전 데이터베이스를 설정하고, 도커 컴포즈로 고스트 블로그와 데이터베이스를 한 번에 관리하려고 하죠.
- 이렇게 하면 서버에 영향을 주지 않고, 마음껏 실험하고 수정한 다음 안정적으로 반영할 수 있어요!
🌊 도커(Docker)와 도커 컴포즈(Docker Compose)란?
도커는 내 컴퓨터에 작은 가상 컴퓨터(컨테이너)를 만들어 주는 도구예요. 여기엔 내가 원하는 프로그램, 라이브러리, 설정이 모두 들어가서 어디서든 동일한 환경을 실행할 수 있죠.
도커 컴포즈는 여러 컨테이너(예: 고스트 블로그와 데이터베이스)를 한꺼번에 설정하고 실행할 수 있는 도구예요. 고스트 블로그와 MySQL을 한 번에 관리할 수 있게 해줍니다.
준비물 체크! 🧰
- 우분투 리눅스가 설치된 컴퓨터
- 도커 설치 및 도커 컴포즈 설정 파일을 작성할 준비
- 서버에서 가져온 고스트 블로그 데이터와 MySQL 데이터베이스 덤프 파일
1단계: 도커 설치
도커를 설치하려면 아래 명령어를 따라 하세요.
sudo apt update
sudo apt install ca-certificates curl gnupg
도커 설치를 위한 키를 등록하고 저장소를 추가합니다.
그다음 도커 시스템과 도커컴포즈를 설치합니다.
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2단계: 도커 컴포즈를 활용한 고스트 블로그와 MySQL 설정
프로젝트 디렉토리 만들기
mkdir ghost-blog && cd ghost-blog
docker-compose.yml
파일 작성
version: '3.1'
services:
ghost:
image: ghost:latest
container_name: ghost-blog
ports:
- "2368:2368"
volumes:
- ./content:/var/lib/ghost/content
environment:
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: ghostpassword
database__connection__database: ghostdb
url: http://localhost:2368
db:
image: mysql:8
container_name: ghost-db
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: ghostdb
MYSQL_USER: ghost
MYSQL_PASSWORD: ghostpassword
volumes:
- ./mysql_data:/var/lib/mysql
설정 설명:
- 고스트 블로그:
- MySQL 데이터베이스와 연결되도록 설정.
- 콘텐츠 데이터는
./content
디렉토리에 저장.
- MySQL 데이터베이스:
- 사용자 이름:
ghost
- 비밀번호:
ghostpassword
- 데이터베이스 이름:
ghostdb
- 사용자 이름:
3단계: 서버 데이터 복제
서버의 고스트 블로그와 MySQL 데이터를 로컬 환경으로 가져와야 해요.
쉽고 재미있는 scp 명령어 가이드: 파일 전송의 모든 것
컴퓨터 초보도 쉽게 배우는 scp 명령어! 친구 컴퓨터와 파일 주고받는 법을 상세히 안내합니다.
1. 고스트 콘텐츠 복제:
서버에서 고스트 콘텐츠 데이터를 압축해 가져옵니다.
scp -r user@server:/path/to/ghost/content ./content
2. MySQL 데이터베이스 복제:
서버의 MySQL 데이터베이스를 덤프해 가져옵니다.
mysqldump -u root -p ghostdb > ghostdb_backup.sql
scp user@server:/path/to/ghostdb_backup.sql ./ghostdb_backup.sql
로컬 MySQL 컨테이너에 데이터베이스를 복원합니다.
docker exec -i ghost-db mysql -u ghost -pghostpassword ghostdb < ghostdb_backup.sql
4단계: 도커 컴포즈로 실행
아래 명령어를 실행하면 모든 컨테이너가 시작돼요.
sudo docker-compose up -d
5단계: 환경 확인
웹 브라우저에서 http://localhost:2368
를 열어 고스트 블로그가 실행되는지 확인하세요. 🎉
🎯 이렇게 하면 좋은 점:
- 서버와 동일한 환경에서 테스트: 서버에 영향을 주지 않고 개발과 테스트 가능.
- 도커 컴포즈로 관리 간편: 여러 컨테이너를 한 번에 실행, 중지, 재시작 가능.
- 복제와 수정이 자유로움: 로컬에서 수정한 내용을 서버에 반영하기 쉬움.
마무리
이제 우분투 데스크탑에서 도커와 도커 컴포즈를 사용해 고스트 블로그와 MySQL 데이터베이스를 완벽하게 구성했어요. 서버 환경과 동일한 환경에서 실험과 수정, 복제를 자유롭게 해보세요! 😊
"도커와 도커 컴포즈로 효율적인 개발 환경을 만들어 보세요!"