워드프레스를 설치하는 방법에는 여러 가지가 있습니다. 지난 번에는 일반적으로 많이 사용하는 웹호스팅 환경에서 워드프레스를 설치하는 방법을 소개한 적이 있습니다. 이번에는 최근 유행하는 도커(Docker) 기반에서 워드프레스를 설치하는 방법에 대해 알아보기로 하겠습니다.
도커는 한마디로 리눅스(Linux) 시스템 위에서 작동하는 경량의 애플리케이션 컨테이너(Container)입니다. 워드프레스도 하나의 ‘애플리케이션’이라고 보면, 당연히 도커에 장착할 수 있습니다. 도커에 대한 좀 더 자세한 개념이나 사용법은 이미 여러 곳에서 많이들 소개되어 있기 때문에 별다른 설명은 생략합니다.
이번에 소개할 내용은 도커로 워드프레스를 설치하는 데 한정하기로 합니다. 또한 도커에 워드프레스를 설치하는 방법 역시 하나만 있는 게 아니기 때문에, 여기서는 가장 기본적인 방법만 소개합니다. 사용법 보다는 도커의 개념과 워드프레스가 도커 위에서 어떻게 작동하는지 하는 부분을 이해할 수 있으면 좋겠습니다.
Docker 설치하기
우선 도커를 설치해야 합니다. 앞서 잠깐 소개했다시피 도커는 리눅스 시스템 기반 위에서 작동합니다. 만약 워드프레스를 설치하려는 시스템이 리눅스 기반이 아닌 경우(예를 들면, Windows 라든가 macOS 같은) 라면, VirtualBox 같은 도구를 사용하여 리눅스 환경을 먼저 만들어야 합니다.
도커에서는 이 작업을 쉽게 해주는 도구를 제공합니다. 도커 다운로드 페이지에 접속해서 설치하려는 환경에 맞는 도커를 내려 받아 설치하면 됩니다.
여기서는 도커 설치를 완료했다는 전제 하에, Mac OS를 기준으로 설명합니다 (다른 OS를 사용하더라도 사용법은 다르지 않습니다).
명령행에서 워드프레스 설치하기
도커로 무언가를 설치한다는 것은 도커 이미지(image) 파일을 내려받아 도커에 컨테이너(container)로 장착한다는 개념입니다. 도커 허브(https://hub.docker.com/)에는 이미 대부분의 애플리케이션 이미지 파일들이 올라와 있기 때문에 이를 가져다 사용하면 됩니다. 여기서는 워드프레스를 설치하기 위해서 다음 2개의 이미지 파일을 사용할 것입니다.
- 워드프레스 (공식 이미지) Apache 서버와 PHP 그리고 워드프레스가 빌드된 이미지 파일입니다.
- MySQL (공식 이미지) 이름 그대로 MySQL을 빌드한 이미지입니다.
이제 터미널을 열어 명령행에서 다음과 같이 docker
명령을 실행합니다. 우선 MySQL 서버부터 띄우겠습니다.
$ docker run -d --name mysql -v mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=wordpress -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=wordpress mysql:5.7
다음으로는 워드프레스 이미지를 도커 컨테이너로 띄웁니다.
$ docker run -d --name wordpress -v wordpress:/var/www/html --link mysql:mysql -e WORDPRESS_DB_HOST=mysql:3306 -e WORDPRESS_DB_PASSWORD=wordpress -p 80:80 wordpress:latest
이제 docker ps
명령으로 컨테이너가 정상적으로 작동하는지 확인해 볼 수 있습니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b6fada08418 wordpress:latest "docker-entrypoint.sh" 41 seconds ago Up 40 seconds 0.0.0.0:80-\>80/tcp wordpress
7f56b141bd64 mysql:5.7 "docker-entrypoint.sh" 7 minutes ago Up 7 minutes 3306/tcp mysql
이것으로 워드프레스 설치가 완료되었습니다.
이제 도커 머신에 접속하여 제대로 설치되었는지 확인해 보겠습니다. 도커 머신이 설치된 IP 주소를 찾아서 해당 주소를 웹브라우저 주소창에 입력합니다. 도커 머신의 주소는 다음과 같이 간단하게 확인 가능합니다.
$ docker-machine ip
192.168.99.100
웹브라우저에서 위 주소로 접속하면 다음과 같이 익숙한 워드프레스 셋업 화면이 나올 것입니다. 여기서부터는 통상적인 워드프레스 사이트 셋업 방법 대로 진행하면 됩니다.
Docker Compose 사용하기
앞서는 터미널에서 docker
명령으로 도커 컨테이너들을 띄웠습니다만, 도커에서는 조금 더 간단한 방법을 제공합니다. Docker Compose를 사용하면 앞서의 명령들을 하나의 파일(docker-compose.yml
) 속에 두고 필요할 때 docker-compose
명령 한번으로 바로 워드프레스를 설치할 수도 있습니다.
그럼 우선 간단하게 docker-compose.yml
파일을 하나 만들어 보겠습니다. 아무 디렉터리에서 다음과 docker-compose.yml
라는 이름으로 텍스트 파일을 하나 만들고 다음과 같이 입력합니다.
version: '2'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
이제 명령행에서 다음과 같이 docker-compose
명령을 실행합니다 (이 때 -d
옵션은 컨테이너를 백그라운드 모드로 띄우라는 명령입니다).
$ docker-compose up -d
이것으로 끝입니다. 앞서 직접 docker
명령을 준 것과 마찬가지로 docker ps
를 통해 WordPress와 MySQL 컨테이너가 실행되어 작동하는 것을 확인할 수 있을 것입니다.
마찬가지로 앞서와 같은 IP주소로 접속하면 익숙한 워드프레스의 설치 화면을 만날 수 있을 것입니다.
왜 도커를 사용할까요?
내 컴퓨터에서 워드프레스를 설치해서 사용해 보려고 할 때, 만약 도커가 설치되어 있다면 앞서와 같이 간단하게 한 줄 명령으로 워드프레스를 만들어 띄울 수 있습니다. 사용하다가 필요가 없어지면 바로 삭제해 버리면 그만입니다. 아무런 흔적도 남지 않고 바로 사라집니다.
만약 내가 사용하는 서버에 도커가 설치되어 있다면? 앞서와 동일한 명령을 서버에 대해 실행하면 한 줄 명령으로 바로 서버 상에 워드프레스를 설치할 수 있게 됩니다. 내 서버 환경을 도커 기반으로 만드는 것도 어렵지 않을 뿐 더러, 이미 많은 호스팅 서비스들이 도커를 지원합니다. 예를 들면, AWS나 마이크로소프트 애저, 그리고 구글 클라우드 엔진 같은 클라우드 호스팅 서비스에서는 이미 도커를 지원하고 있기 때문에, 앞서의 도커 기본 명령을 이들 호스팅 서비스에 대해 바로 실행해 볼 수도 있습니다.
물론 간단한 워드프레스 사이트 하나 만드는데 굳이 이런 ‘복잡한’(?) 도커 같은 개념을 꺼내들 필요가 꼭 있는 건 아닙니다만, 이런 방법도 가능하다는 것 정도라도 알고 있으면 혹시 아나요? 언제든 한번 꺼내 써 먹을 일이 있을 지도 모르는 일이니까요. 🙂
2 thoughts on “Docker로 워드프레스 설치하기”