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

우분투 데스크탑에 고스트 블로그 도커 개발환경 만들기
"우리는 기술을 통제할 때, 기술은 우리를 자유롭게 한다." – 더글러스 애덤스

안녕하세요! 오늘은 우분투 데스크탑에 도커(Docker)를 설치하고, 이를 활용해 서버의 고스트 블로그를 복제하여, 고스트 블로그 개발환경을 만들려고 합니다.

제가 도커를 설치하려는 이유는 아주 분명해요.

  1. 서버에서 운영 중인 고스트 블로그의 자료를 복제동일한 환경을 내 컴퓨터에 만들어 작업하려고 해요.
  2. MySQL 8 버전 데이터베이스를 설정하고, 도커 컴포즈로 고스트 블로그와 데이터베이스를 한 번에 관리하려고 하죠.
  3. 이렇게 하면 서버에 영향을 주지 않고, 마음껏 실험하고 수정한 다음 안정적으로 반영할 수 있어요!

🌊 도커(Docker)와 도커 컴포즈(Docker Compose)란?

도커는 내 컴퓨터에 작은 가상 컴퓨터(컨테이너)를 만들어 주는 도구예요. 여기엔 내가 원하는 프로그램, 라이브러리, 설정이 모두 들어가서 어디서든 동일한 환경을 실행할 수 있죠.

도커 컴포즈는 여러 컨테이너(예: 고스트 블로그와 데이터베이스)를 한꺼번에 설정하고 실행할 수 있는 도구예요. 고스트 블로그와 MySQL을 한 번에 관리할 수 있게 해줍니다.


준비물 체크! 🧰

  1. 우분투 리눅스가 설치된 컴퓨터
  2. 도커 설치 및 도커 컴포즈 설정 파일을 작성할 준비
  3. 서버에서 가져온 고스트 블로그 데이터와 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

설정 설명:

  1. 고스트 블로그:
    • MySQL 데이터베이스와 연결되도록 설정.
    • 콘텐츠 데이터는 ./content 디렉토리에 저장.
  2. 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를 열어 고스트 블로그가 실행되는지 확인하세요. 🎉


🎯 이렇게 하면 좋은 점:

  1. 서버와 동일한 환경에서 테스트: 서버에 영향을 주지 않고 개발과 테스트 가능.
  2. 도커 컴포즈로 관리 간편: 여러 컨테이너를 한 번에 실행, 중지, 재시작 가능.
  3. 복제와 수정이 자유로움: 로컬에서 수정한 내용을 서버에 반영하기 쉬움.

마무리

이제 우분투 데스크탑에서 도커와 도커 컴포즈를 사용해 고스트 블로그와 MySQL 데이터베이스를 완벽하게 구성했어요. 서버 환경과 동일한 환경에서 실험과 수정, 복제를 자유롭게 해보세요! 😊

"도커와 도커 컴포즈로 효율적인 개발 환경을 만들어 보세요!"